Фрагменты и ярлыки SSMS

Я использую 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 ответа

Нет, по какой-то причине Microsoft, похоже, не заинтересована в реальной реализации этой функции, несмотря на то, что фрагменты кода без нее бесполезны (из-за количества щелчков мышью и нажатий клавиш необходимо вставить фрагмент).

Сколько раз в день вы набираете "SELECT * FROM..." или "SELECT TOP 10 * FROM "... и т. Д.??! Очень расстраивает!

Даже SSMS 2016 Release Candidate все еще не поддерживает его.

"ApexSQL Complete" (бесплатный инструмент), очевидно, сделает это, но пока не поддерживает SSMS 2016!

Добавьте свой фрагмент в папку "Функции", где находятся другие фрагменты SurroundsWith. Затем нажмите клавиши CTRL + K, CTRL + S (ярлык для SurroundsWith Snippets), введите несколько букв из имени своего фрагмента и нажмите ввод. Если только папка "Функции" имеет фрагменты SurroundsWith, то никакие другие папки не будут отображаться в контекстном меню. В противном случае вы можете ввести несколько букв из соответствующего имени папки и нажать вкладку. Этот процесс очень похож на этот ответ.

Для моей среды расположены фрагменты 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>

В ApexSQL Complete у вас есть возможность сделать это и, конечно, поддерживать SSMS 2016 и даже новую SSMS 17 RC, за исключением того, что она абсолютно бесплатна.

Не беспокойтесь о том, чтобы придать ему определенный ярлык.
Просто добавьте его в папку "Мои фрагменты".

Обязательно сохраните как.snippet

Нажмите Ctrl+K, Ctrl+S
Стрелка вниз, чтобы мои фрагменты введите
стрелка вниз к фрагменту, который вы хотите ввести

Ваш фрагмент будет окружать код, который вы хотели.

Другие вопросы по тегам