SQL Server#区域


163

我可以在sql server编辑器(如#region#endregionC#)中创建区域吗?

Answers:


272

不好意思,对不起!但...

添加beginend..并在begin创建区域上添加注释,看起来像这样... 有点黑!

开始结束区域代码的屏幕截图

否则,您只能展开和折叠,而不能决定应该展开和折叠的内容。并非没有第三方工具(例如SSMS Tools Pack)


4
确保已在“文本编辑器”>“ Transact-SQL”>“ Intellisense”>“启用Intellisense
GatesReign

2
technet.microsoft.com/zh-CN/library/aa225998(v=sql.80).aspx。尽管所有Transact-SQL语句在BEGIN ... END块内均有效,但某些Transact-SQL语句不应在同一批处理(语句块)中分组在一起。谁能告诉我为什么不应该将它们分组?
雅各布·潘

1
有用的技巧,但是如果要创建多个区域/部分,请不要忘记goend语句后添加。
marchWest

辉煌!谢谢
存根(stubs)

精细!如果只有注释块。您必须添加不带评论的内容。例如:print
6

12

(我是SSMS 的SSMSBoost加载项的开发人员)

我们最近在我们的SSMSBoost加载项中添加了对此语法的支持。

--#region [Optional Name]
--#endregion

它也具有在打开脚本时自动“识别”区域的选项。


2
可以,但不能即时运行。我必须关闭并重新打开文件才能折叠新创建的区域。
马丁·卡波迪奇

4
工具栏上的SSMSBoost菜单中提供了一个“修复区域”选项。因此,无需重新打开文件。
Andrei Rantsevich '16

不幸的是,这有一个错误。如果该区域内的第一个代码语句被注释掉,则该区域最后被注释掉的代码行结束
Jeff

9

BEGIN ... END有效,您只需要添加一个注释部分。最简单的方法是添加部分名称!另一种方法是添加注释块。见下文:

BEGIN  -- Section Name
/* 
Comment block some stuff  --end comment should be on next line
*/

 --Very long query
SELECT * FROM FOO
SELECT * FROM BAR
END


4

只需在查询编辑器中使用文本缩进即可。

展开视图:

展开式

收合视图:

倒塌


3

否,#region在T-SQL语言中不存在。

您可以使用begin-end块进行代码折叠:

-我的地区
开始
    -代码在这里
结束

我不确定我是否建议为此使用它们,除非代码不能通过其他方式来可接受地重构!


2

我使用了类似于McVitie的技术,并且只在很长的存储过程或脚本中使用过。我将分解某些功能部分,如下所示:

BEGIN /** delete queries **/

DELETE FROM blah_blah

END /** delete queries **/

BEGIN /** update queries **/

UPDATE sometable SET something = 1

END /** update queries **/

该方法在Management Studio中显示得相当不错,并且对检查代码确实很有帮助。折叠的部分看起来像:

BEGIN /** delete queries **/ ... /** delete queries **/

我实际上更喜欢这种方式,因为我知道我BEGIN可以通过END这种方式进行匹配。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.