Сочетание клавиш для автоматического переноса выделенного текста в IsNull ([текст], 0) в SSMS - PullRequest
1 голос
/ 14 июня 2019

Есть ли какой-нибудь способ создать ярлык в SQL Server Management Studio (SSMS), который при выделении текста переносит этот текст в оператор IsNull ()?

Например, я выделил текст ниже:

My_column_name

, и когда я нажимаю сочетание клавиш, то, что было выделено, превращается в:

IsNull(My_column_name, 0)

Я использую SSMS v17.4

Ответы [ 2 ]

2 голосов
/ 15 июня 2019

Возможно, я нашел способ.В каталоге C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio\SQL\Snippets\1033\Function (настройте соответственно для вашей установки) я скопировал файл Begin End.snippet, назвал копию IsNull.snippet и изменил новый файл.Я изменил:

BEGIN

$selected$ $end$

END

На:

IsNull($selected$ $end$, 0)

(я также изменил теги Title, Description и Author - делайте с ними все, что хотите.)

Затем в SSMS я использовал Tools -> Code Snippets Manager для импорта нового фрагмента.Теперь, когда в окне запроса выбрано My_column_name, я могу использовать Ctrl + K, Ctrl + S, Вниз, Вниз, Ввод, Вниз, Ввод, чтобы применить новый фрагмент.

Это не единственное нажатие клавиши, но оно движется в этом направлении.Может быть, это вдохновит кого-то еще, кто может сделать это еще лучше.

1 голос
/ 15 июня 2019

Вы можете сделать это, используя фрагменты.Это не совсем простой ярлык, но несколько нажатий на него приведут вас туда.

Сначала вам нужно создать такой фрагмент кода:

<?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 исохраните его в папке, предназначенной для фрагментов.Вы можете использовать один набор по умолчанию.Чтобы узнать, какая папка является вашей по умолчанию, или добавить другую папку, перейдите к Code Snippets Manager в меню «Инструменты» для SSMS.

Как только ваш фрагмент окажется в зарегистрированном месте, выберите код, нажмите Ctrl+K,Ctrl+Sи появится контекстное меню фрагментов.Вы можете пройти его, начав набирать имя папки и фрагмента и нажимая Enter или Right, чтобы попасть туда.

Вероятно, оно не стоит коротких фрагментов, но для более крупных это удивительно.Я написал более подробное объяснение здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...