我正在使用SSMS 2012与我们使用的SQL Server 2012和Azure SQL服务器进行通讯。我承认我不是SQL专家,所以我一直在保存大多数SQL脚本以供将来参考。我很快在SSMS项目中遇到了20个左右的.SQL脚本,它们都位于同一个“查询”文件夹下。
有没有一种方法可以在项目中创建“子文件夹”,以便我可以正确地组织脚本?其他大多数人如何使他们的脚本井井有条?我很确定这是否会像我一样困扰新手,对于真正的管理员(可能有数百个脚本?),这一定是一个真正的问题。
我正在使用SSMS 2012与我们使用的SQL Server 2012和Azure SQL服务器进行通讯。我承认我不是SQL专家,所以我一直在保存大多数SQL脚本以供将来参考。我很快在SSMS项目中遇到了20个左右的.SQL脚本,它们都位于同一个“查询”文件夹下。
有没有一种方法可以在项目中创建“子文件夹”,以便我可以正确地组织脚本?其他大多数人如何使他们的脚本井井有条?我很确定这是否会像我一样困扰新手,对于真正的管理员(可能有数百个脚本?),这一定是一个真正的问题。
Answers:
谨慎的用户:您可以安装SSMS 2016,但仍旧使用旧版本。请参阅[1]
下面的注释。
子文件夹的工作方式如下:
添加解决方案子文件夹:
添加SQL脚本:
您的好旧项目(坏旧项目)
[1]
关于升级:
SSMS 2016正式支持SQL Server 2008-2016。有关更多信息,请参见下载页面。对于较旧的版本,您可以保留自己喜欢的旧SSMS,请参阅下面的第2点。
不同的SSMS版本可以很好地生活在一起,即,您可以将SSMS 2008和SSMS 2016一起安装而没有问题–经过测试。
在SSMS,如果你是不是已经显示模板浏览器管理单元,进入菜单,查看,模板资源管理器(热键Ctrl- - )。AltT
模板是从本地计算机上的此文件夹中加载的
C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql
您可以根据需要添加子文件夹,甚至可以嵌套它们(通过Windows资源管理器或SSMS)。如果我没有记错的话,每次SSMS启动时,文件夹仅加载一次,因此您可能必须重新启动SSMS才能从文件系统中获取文件夹更改。
p / s-此方法重新利用模板浏览器来组织项目脚本!
通过在C:\ Program Files(x86)\ Microsoft SQL Server \ 110 \ Tools \ Binn \ ManagementStudio \ SqlWorkbenchProjectItems \ Sql中重新使用模板,可以在上面的答案3中添加解决方法。
您必须向计算机用户帐户添加“完全控制”权限。(右键单击目标文件夹,“属性”,选择机器用户,“编辑”等)
即使那样,就像史蒂夫·巴尔默(Steve Balmer)还是在通过时就解决了这个问题。您可以在此处保存文件,但是在SSMS中打开文件时,不会以该.sql文件的名称打开文件,这是通用名称。因此,所有这些繁琐的工作只是为了使您的查询,函数,表脚本,存储过程等都井井有条。
很好的答案,但是在Windows 8.1上却被排除在外。
我最好的答案是通过SSMS保存到文件系统,我认为它将尊重.sql文件的嵌套。我必须在Visual Studio 2013中创建一个数据库项目,在其中可以设置文件夹,因为它们对我的产品流程有意义。
但是我无法通过Visual Studio中的服务器资源管理器打开这些查询...但是,如果它们在工作中,SPROC脚本,UDF脚本等,则可以在一个地方组织查询。
用另一位受访者的话说,没有IDE可以进行这种项目工作,是的,这很可悲。
这里有点杂乱无章的事情...换句话说,我可以在VS 2013中使用数据库项目获得我想要的文件夹结构,但是如果我想登录到远程服务器进行测试,则必须从文件中逐个访问它们SSMS。背面疼痛...我想要一个能做到这一点的IDE。
通过手动编辑SSMS项目文件以在解决方案下方添加文件夹,我取得了进步。在文本编辑器中打开.ssmssqlproj文件。搜索名为LogicalFolder的节点。“杂项”节点是您需要执行的操作的良好模型。
只需复制这些行并将名称更改为要查看的文件夹即可。还要将“类型”值更改为唯一的值。这是我所做的。
<LogicalFolder Name="Tables" Type="4" Sorted="true">
<Items />
</LogicalFolder>
<LogicalFolder Name="Functions" Type="6" Sorted="true">
<Items />
</LogicalFolder>
<LogicalFolder Name="User-defined Table Types" Type="7" Sorted="true">
<Items />
</LogicalFolder>
确保保留项目文件(.ssmssqlproj)的副本。如果您像我几次一样弄乱了编辑,则该项目将无法打开。如果您已经安装了TFS加载项并正在签入项目文件,这不会太糟-您可以放弃所做的更改。但是,如果没有,请确保进行复印。
然后,在解决方案下创建文件夹以匹配逻辑文件夹名称。之后,我创建了一个表定义脚本和一个用户定义的表类型定义脚本,并将它们保存在各自的文件夹中。它们显示在解决方案资源管理器中的“其他”文件夹下,因此我将它们拖到相应的文件夹中。
这是发生问题的地方。因为我认为所有存储过程,函数,表和类型都在具有.sql扩展名的文件中。因为是.sql文件,所以它们被放置在解决方案资源管理器中的Queries文件夹下。但是,它们实际上仍然位于磁盘上的正确文件夹中。因此,这是朝正确方向迈出的一步。
我想查看项目文件中的“ Type”属性是否与特定的文件扩展名相对应,以及是否可以确定它们是什么。如果我可以获取正确的扩展名,则SSMS会将文件放置在正确的项目文件夹中。
根据SSMS的启动画面,我可以看一下Visual Studio来了解它是如何工作的,因为SSMS是基于Visual Studio的。
但是,我在那儿,所以也许你们中的一个可以弄清楚其余的!
.sql
文件中。这样,您只需要跟踪一个文件即可。