在 SSMS 中自动将所选文本换行到 IsNull([text], 0) 中的键盘快捷键

Keyboard shortcut to automatically wrap selected text in IsNull([text], 0) in SSMS

Is there some way to have a shortcut in SQL Server Management Studio (SSMS) that when text is selected, it wraps that text in an IsNull() statement?

例如,我突出显示下面的文字:

My_column_name

当我点击键盘快捷键时,突出显示的内容变成:

IsNull(My_column_name, 0)

我正在使用 SSMS v17.4

您可以使用代码片段完成此操作。这不是一个简单的快捷方式,但只需敲击几下键盘即可。

首先你需要像这样创建一个片段:

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets  xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
    <CodeSnippet Format="1.0.0">
        <Header>
            <Title>ISNULL</Title>
            <Shortcut></Shortcut>
            <Description>Inserts ISNULL function</Description>
            <Author>Luis Cazares</Author>
            <SnippetTypes>
                <SnippetType>SurroundsWith</SnippetType>
            </SnippetTypes>
        </Header>
        <Snippet>
        <Declarations>
        </Declarations>
        <Code Language="SQL"><![CDATA[ISNULL( $end$$selected$, 0)]]>
        </Code>
        </Snippet>
    </CodeSnippet>
</CodeSnippets>

将其另存为 .snippet 文件并将其保存在用于存放片段的文件夹中。您可以使用一组作为默认设置。要了解哪个文件夹是您的默认文件夹或添加其他文件夹,请转到 SSMS 工具菜单中的 Code Snippets Manager

一旦您的代码段位于注册位置,select 代码,按 Ctrl+K,Ctrl+S 代码段上下文菜单就会出现。您可以通过开始输入文件夹和片段名称并在到达那里时按 Enter 或 Right 来遍历它。

对于短片段来说可能不值得,但对于较大的片段来说它是惊人的。我写了更详细的解释in here.

我可能找到方法了。在 C:\Program Files (x86)\Microsoft SQL Server0\Tools\Binn\ManagementStudio\SQL\Snippets33\Function 目录(根据您的安装进行相应调整)中,我复制了 Begin End.snippet 文件,将副本命名为 IsNull.snippet,并修改了新文件。我改变了:

BEGIN

$selected$ $end$

END

收件人:

IsNull($selected$ $end$, 0)

(我还更改了标题、描述和作者标签——随心所欲。)

然后,在 SSMS 中,我使用 Tools -> Code Snippets Manager 导入新代码段。现在,在查询 window 中选择了 My_column_name,我可以使用 Ctrl+K、Ctrl+S、Down、Down、Enter、Down、Enter 来应用新代码段。

这不是一次击键,而是朝着那个方向前进。也许这会激励其他人使它变得更好。