用于注释/取消注释查询特定部分的 SSMS 快捷方式?

Aru*_*mar 2 sql-server ssms keyboard-shortcuts

我正在寻找一个选项来评论/取消评论查询的特定部分与斜线星评论选项。

设想:

在调试有NJOINs的查询时,我将join中的每个表及其相关条件一一注释掉,并找出导致问题或错误数据的表。如果注释表没有导致问题,我将取消注释该表及其相关条件并尝试使用下一个表。

为此,我目前在特定行前手动添加-- 注释或按Ctrl+C注释整行,如果选择/条件在行的中间,我将选择/条件单独移动到下一行并添加——评论。如果加入没有问题,我再次撤消更改或Ctrl+U取消注释。

将条件移到新行并添加注释对我来说是负担,有时它也会导致对齐不良。

期待:

我想要的是需要一些快捷键来添加所选文本的/*前后*/

样品:

下面是示例案例,我的查询看起来像(实际上它可能包含更多选择列、表和条件)。

SELECT T1.Id, T1.Name, T1.Designation, T1.CreatedDate, 
       T2.AccountName, T3.LinkId, T3.LinkName, T4.OwnershipName
FROM TableOne T1
INNER JOIN TableTwo T2 ON T2.Id = T1.Id AND T2.Name = T1.Name
INNER JOIN TableThree T3 ON T3.Id = T2.Id AND T3.IsActive = 1
INNER JOIN TableFour T4 ON T4.Id = T1.Id AND T4.LinkId = T3.LinkId AND T4.IsActive = 1
WHERE T1.CreatedDate BETWEEN @FromDate AND @ToDate AND T1.DeletedDate IS NULL
    AND T2.DeletedDate IS NULL AND T3.DeletedDate IS NULL AND T4.DeletedDate IS NULL 
Run Code Online (Sandbox Code Playgroud)

在这里,如果我要评论TableThree及其相关内容的SELECTJOIN和条件WHERE。我将选择内容并按快捷键/* */单独添加评论。

预期的行为是:

SELECT T1.Id, T1.Name, T1.Designation, T1.CreatedDate, 
       T2.AccountName/*, T3.LinkId, T3.LinkName*/, T4.OwnershipName
FROM TableOne T1
INNER JOIN TableTwo T2 ON T2.Id = T1.Id AND T2.Name = T1.Name
/*INNER JOIN TableThree T3 ON T3.Id = T2.Id AND T3.IsActive = 1*/
INNER JOIN TableFour T4 ON T4.Id = T1.Id /*AND T4.LinkId = T3.LinkId*/ AND T4.IsActive = 1
WHERE T1.CreatedDate BETWEEN @FromDate AND @ToDate AND T1.DeletedDate IS NULL
    AND T2.DeletedDate IS NULL /*AND T3.DeletedDate IS NULL*/ AND T4.DeletedDate IS NULL 
Run Code Online (Sandbox Code Playgroud)

wBo*_*Bob 5

您可以使用Code Snippets轻松做到这一点,这样的事情将适用于您的示例:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <_locDefinition xmlns="urn:locstudio">
        <_locDefault _loc="locNone" />
        <_locTag _loc="locData">Title</_locTag>
        <_locTag _loc="locData">Description</_locTag>
        <_locTag _loc="locData">Author</_locTag>
        <_locTag _loc="locData">ToolTip</_locTag>
        <_locTag _loc="locData">Default</_locTag>
    </_locDefinition>
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>SLASH STAR COMMENT (surrounds)</Title>
            <Shortcut></Shortcut>
            <Description>Surround selected text with slash star comment block /**/</Description>
            <Author>wBob</Author>
            <SnippetTypes>
                <SnippetType>SurroundsWith</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Declarations>
                <Literal>
                    <!--<ID>x</ID><ToolTip>y</ToolTip><Default>z</Default>-->
                </Literal>
            </Declarations>
            <Code Language="SQL">
                <![CDATA[/* $selected$ $end$ */]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>
Run Code Online (Sandbox Code Playgroud)

使用.snippet扩展名保存文件,然后按照此处的说明将代码段添加到 SQL Server Management Studio (SSMS)。

使用说明

  1. 在查询编辑器中突出显示要用注释块包围的文本
  2. Ctrl+ K, Ctrl+S召唤“环绕”片段。注意两个序列之间的逗号,意思是“按Ctrl+K,然后快速连续按Ctrl+S”
  3. 从列表中选择您的片段
  4. 您突出显示的文本被评论块包围
  5. Ctrl+Z撤消 - 这是普通的 Windows 撤消命令。只要您没有进行任何其他编辑,它就会删除评论块。

运行中的代码片段