Посвящается тем, кому надоело писать один и тот же SELECT
Казалось бы, какая ерунда, но быстрых и внятных ответов в гуглонетах нет, поэтому дам их здесь.
В SQL Server Management Studio невозможно навесить горячую клавишу на сниппет.
Ничего Emmet-подобного найти мне не удалось. Найдёте - отпишите в комментариях.
Можно доработать напильником.
В SSMS есть сниппеты. Добраться до них можно двумя способами:
Меню Tools (Сервисы) -> Code Snippets Manager (Диспетчер фрагментов кода), оно же Ctrl+K, Ctrl+B. Он показывает нам список папок со сниппетами, переходя в которые можно собственно увидеть сами сниппеты.
Контекстное меню
Самое интересное находится в контекстном меню. Там есть целых два пункта: Insert Snippet (Вставить фрагмент кода) и Surround With (Разместить во фрагменте: Ctrl+K, Ctrl+S). Первый показывает тот самый список папок, а второй - некий ограниченный набор сниппетов, которые вызываются кликом по ним.
Дело в том, что в SSMS есть два вида сниппетов: Expansion и SurroundsWith. И в пункте контекстного меню Surround With отображаются именно вторые. XML-файлы сниппетов хранятся в папке, указанной в Диспетчере фрагментов кода.
Выпадающий список контекстного пункта Surround With (Ctrl+K, Ctrl+S) подхватывает все сниппеты из подпапок этой папки, которые имеют тип SurroundsWith. Тип определяется в узле SnippetType в самом коде сниппета:
... <Header> <Title>If</Title> <Shortcut/> <Description>Фрагмент кода для конструкции If.</Description> <Author>Корпорация Майкрософт</Author> <SnippetTypes> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> </Header> ...
Далее есть узел Code, в котором определяется, какой собственно текст должен быть вставлен.
Пример моего элементарного сниппета на SELECT
<?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> </_locDefinition> <CodeSnippet Format="1.0.0"> <Header> <Title>SELECT</Title> <Shortcut/> <Description/> <Author/> <SnippetTypes> <SnippetType>SurroundsWith</SnippetType> </SnippetTypes> </Header> <Snippet> <Code Language="SQL"> <![CDATA[select * from (nolock) where id = ]]></Code> </Snippet> </CodeSnippet> </CodeSnippets>
Синтаксис позволяет также передавать параметры, делать некие плейсхолдеры, по которым сразу после вставки вы сможете пробежаться табом и заполнить нужные места, но об этом всём можно почитать и в официальной доке.
Для вызова требуется произвести целых четыре нажатия на клавиатуре, но это лучше, чем ничего, и они достаточно быстро доводятся до автоматизма: Ctrl+K, не отжимая Ctrl жмём S, стрелка вниз, Enter.

Чтобы в список не попадали дефолтные SurroundsWith - их надо удалить или поменять им тип. Сберегает массу нервов и времени, когда пишешь десятки селектов в день. Иногда их даже писать не хочется, потому что опять надо писать. Пользуйтесь на здоровье!