15

我正在使用 SSMS 2014。我可以插入一个片段,但它们似乎没有响应快捷方式(即 crproc [tab])

已知此功能有效吗?

<?xml version="1.0" encoding="utf-8" ?>
 <CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
 <CodeSnippet Format="1.0.0">
 <Header>
 <Title>prod1</Title>
 <Description>testing</Description>
 <Author> dale </Author>
 <SnippetTypes>
 <SnippetType>Expansion</SnippetType>
 </SnippetTypes>
 <Shortcut>crproc</Shortcut>
 </Header>
 <Snippet>
 <Declarations>
 <Literal>
 <ID>DatabaseName</ID>
 <ToolTip>Name of database.</ToolTip>
 <Default>DB</Default>
 </Literal>
 </Declarations>
 <Code Language="SQL">
 <![CDATA[
 ------------------------------------------------------
 -- FILENAME: Template-Expansion.snippet
 -- PURPOSE: Template for Expansion (Insert) snippets.
 -- AUTHOR: Ken O. Bonn
 -- DATE: May 15, 2013
 ------------------------------------------------------
 SET NOCOUNT ON;

 EXEC SP_HELPDB $DatabaseName$;

 ]]>
 </Code>
 </Snippet>
 </CodeSnippet>
 </CodeSnippets>
4

4 回答 4

18

不,由于某种原因,微软似乎对实际实现此功能没有兴趣,尽管没有它,代码片段完全没用(因为您需要插入片段的鼠标点击和按键次数)。

您每天输入多少次“SELECT * FROM ...”或“SELECT TOP 10 * FROM”...等...??!非常令人沮丧!

甚至 SSMS 2016 Release Candidate 仍然不支持它。

“ApexSQL Complete”(一个免费工具)显然可以做到,但这还不支持 SSMS 2016!

于 2016-04-28T10:33:25.840 回答
4

将您的代码段添加到其他 SurroundsWith 代码段所在的“功能”文件夹中。然后按 CTRL + K、CTRL + S(SurroundsWith Snippets 的快捷方式)并输入片段名称中的几个字母,然后按 Enter。如果只有“功能”文件夹有 SurroundsWith 片段,则上下文菜单中不会显示其他文件夹。否则,您可以从适当的文件夹名称中键入几个字母,然后按 Tab。这个过程很像这个答案。

对于我的环境,Begin、If 和 While 片段位于:

C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\ManagementStudio\SQL\Snippets\1033\Function

这是 SELECT * FROM 的示例片段:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>Select</Title>
            <Shortcut>sel</Shortcut>
            <Description>SELECT * FROM _ WHERE 1=1 AND</Description>
            <Author/>
            <SnippetTypes>
                <SnippetType>SurroundsWith</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
            <Code Language="SQL">
                <![CDATA[
SELECT * FROM dbo.$selected$$end$
WHERE 1=1
--AND
]]>
            </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>
于 2017-05-09T16:49:06.183 回答
3

ApexSQL Complete中,您可以执行此操作,当然也支持 SSMS 2016 甚至新的 SSMS 17 RC,但它是完全免费的

于 2017-02-03T17:06:06.123 回答
0

不要担心给它一个特定的快捷方式。
只需将其添加到我的片段文件夹下即可。

确保另存为 .snippet

按 ctrl+K、Ctrl+S
向下箭头到我的片段 输入
向下箭头到你想要的片段 输入

你的片段将围绕你想要的代码。

于 2017-03-28T19:00:13.047 回答