SSMS:折叠时分隔注释块

时间:2012-09-26 01:02:58

标签: formatting sql-server-2008-r2 ssms

SSMS编辑器中是否有一种方法可以直观地分隔两个注释块,这些注释块在注释折叠后一个接一个地放置?

请查看下面的链接 - 请记住此代码仅用于演示目的。

enter image description here

在SSMS编辑器中折叠此代码时,我看到所有已注释的代码都已折叠。

我希望能够将每个评论区块视为单独的折叠区域,如下图所示(这是一个已编辑的图像) -

enter image description here

我确实考虑使用GO,但在我的情况下,这段代码是存储过程的一部分,我有一个BEGIN和END封装了这部分代码,因此无法使用。

我想过使用BEGIN / END,但这不起作用,因为我只有注释而没有内部代码。

我提出的最接近的解决方法是使用空白PRINT'' - 但是,我付费这是多余的,甚至在存储过程中使用时会产生反效果,该存储过程将始终从应用程序调用,并且永远不会除了调试时,从SSMS运行。

有没有人对此有任何想法?任何免费的第三方插件的建议/方向也不胜感激。

2 个答案:

答案 0 :(得分:3)

如果评论没有合并到一个地区,我也不知道如何做到这一点。

在SQL Server 2008 Management Studio(可能还有最新的版本)中,您可以使用{$REGION}至少为您提供一种命名或描述折叠区域的方法,这可能有所帮助:

{$REGION "Comment One"}
-- This is comment one
{$ENDREGION}

SELECT dbo.

{$REGION "This is comment two"}
-- This is a separate comment
{$ENDREGION}

SELECT ...

SSMS image capture

但两个地区之间必须有内容,否则它们仍会合并为一个。

以上内容也适用于嵌入/*..*/注释内部( 有效T-SQL,@ scriptfromscratch),但它仍会合并注释,除非它们之间有内容:

/* {$REGION  "Test region 1"}
-- This is a test comment
{$ENDREGION}
*/

SELECT dbo.something

/* {$REGION "Test region 2"}
This is test comment 2
{$ENDREGION}
*/

SELECT dbo.

Embedded regions

Embedded regions collapsed

在我看来,您需要某种提供此功能的第三方工具,但我不知道有哪一种能做到这一点,我很害怕。

答案 1 :(得分:0)

我知道这是一个老话题,但由于我没有看到我使用的简单解决方案,我以为我会加入。

我倾向于主要使用块评论,并且内联评论中只有一行或者简短。如果您的结束块注释标记后跟分号,则可以单独折叠任何相邻的块,如下所示。

仅供参考我在SSMS 2012中使用,我无法保证其他任何版本。

Adjacent comment blocks followed by semicolons

Adjacent comment blocks collapsed

不幸的是,这不适用于相邻的内联评论。 OP可能会更好地使用块注释来将任何相邻/相关注释包含在单独的块中。

Ken White走在正确的轨道上,但我认为$REGION的内容是不必要的。以下方法实现了完全相同的效果,除了更加干净。

Comment block with simple title

Collapsed comment block with simple title

使用$REGION对命令进行分组同样笨拙,因为公然使用BEGIN END块将执行相同的工作。请记住妥善缩进以避免混淆。

享受