在SQL Server Management Studio中多次打开存储过程文件

4
在Sql Server管理工具中,存在一种奇怪的情况,让我浪费了一整天的工作时间。这是关于多次打开数据库对象的问题。当我尝试从对象资源管理器中右键单击编辑表格时,第一次会打开编辑窗口,在第二次尝试时,它会重新打开先前已经打开但不是在新的编辑窗口中打开的。尽管如此,如果我尝试从对象资源管理器中右键单击选择该表格,则每次重试此操作时,它会多次打开带有select语句的新查询。对于存储过程和函数也是完全相同的事情。由于多次打开,我在存储过程中丢失了我的更改。在Visual Studio中,默认情况下无法多次重新打开一个文件以在新的编辑器中打开。是否有任何选项可以重新配置SQL Server管理工具,以不打开已经在编辑器中打开的对象?

注意:我知道这是我的问题,需要记住哪些对象我已经打开,但我请求帮助,如果有我没有意识到的选项。

注意#2:我怀疑这是否是询问此类问题的正确地方,请不要冒犯我。

1
我同意你的看法,这可能是一个可用性问题。它偏离了“文件”的通常概念,因为在内部,对视图或过程上的“修改”选项在功能上等同于“脚本存储过程为> ALTER到>新查询窗口”。所以你真正做的是打开一个新的查询窗口(一个“未命名的文件”)并将一些脚本粘贴到其中。作为SSMS的用户,我们必须意识到这一点。考虑使用源代码控制来防止数据丢失。 - Cee McSharpface
2
我建议你在dba.stackexchange.com上提出这个问题。 - Tab Alleman
这是我们的做法:我们将所有的存储过程都存储在文件中(每个存储过程一个文件)。要编辑存储过程,您需要双击文件而不是 SQL Server 中的对象。这些文件被检入 Git(您可以使用任何源代码控制系统)。在部署时,我们使用 https://github.com/chucknorris/roundhouse 运行存储过程脚本。 - mortb
你遇到了一个问题,这是你选择的过程的一部分。选择一个更好的过程,也许是Mortb建议的那个。 - A ツ
@AlicanUzun:嗯,我曾经遇到过你所经历的同样问题。我能感受到你的痛苦:) 我认为你不能让管理工具做你想要的事情。我们目前使用的设置是给我带来最少痛苦的设置。 - mortb
显示剩余3条评论
1个回答

0

简短回答是不行的。很遗憾,没有办法防止这种事情发生,即使在SSMS16中也不行。SSMS不像打开文件那样工作。每次你修改存储过程或者为一个表生成脚本时,它实际上是为该数据库对象(就像我说的)生成脚本。对于所有的表、存储过程、视图和函数都是一样的。所以我想你需要更加注意,以免丢失你的工作 :-)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接