Sql-Server

SSMS 快捷方式來評論/取消評論查詢的特定部分?

  • August 18, 2016

我正在尋找使用Slash Star Comment選項評論/取消評論查詢特定部分的選項。

設想:

在調試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 

這裡如果要評論 中的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 

您可以使用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>

.snippet使用副檔名保存文件並按照此處的說明將程式碼段添加到 SQL Server Management Studio (SSMS)。

使用說明

  1. 在查詢編輯器中突出顯示要用註釋塊包圍的文本
  2. Ctrl+ KCtrl+S召喚“環繞”片段。注意兩個序列之間的逗號,意思是“按Ctrl+K,然後快速連續按Ctrl+S”
  3. 從列表中選擇您的片段
  4. 您突出顯示的文本被註釋塊包圍
  5. Ctrl+Z撤消 - 這是正常的 Windows 撤消命令。只要您沒有進行任何其他編輯,它就會刪除評論塊。

程式碼片段在行動

我不知道有任何方法可以在 SSMS 中本地執行此操作,但是這個免費的外掛工具允許該選項等等

http://www.ssmsboost.com/

引用自:https://dba.stackexchange.com/questions/147165