SQL Server 2012: Фрагменты кода на T-SQL

Вспомните о сериях команд, которые приходится писать при разработке триггеров, таблиц, хранимых процедур и даже инструкций Select. А сейчас представьте, что все эти команды определены и готовы к использованию. Можно существенно уменьшить время и усилия по кодированию, если использовать новые куски кода на T-SQL в SQL Server 2012.

Куски кода позволяют стремительно строить аннотации T-SQL без необходимости держать в голове команды и их синтаксис. Такую функциональность можно использовать для сокращения времени разработки и увеличения производительности собственных разработчиков и админов БД.

Куски в SQL Server 2012 основаны на XML с предопределенными полями и значениями. При использовании куска кода на T-SQL эти поля выделяются и можно перебегать по полям, изменяя значения, как требуется.

Для простоты использования куски кода разбиты на категории. Просматривать и выбирать различные куски можно, ориентируясь на категории. В SQL Server 2012 представлены три вида фрагментов:

Куски по дефлоту (либо куски расширения) Есть куски кода для разных команд T-SQL, которые можно стремительно воткнуть в собственный код при разработке таблиц, хранимых процедур, триггеров и т. п.
Куски окружения Это шаблоны кода, помогающие реализовывать такие конструкции кода, как Begin End, If, While и другие.
Пользовательские куски Можно создавать собственные куски, которые показываются в меню фрагментов.

Создание пользовательских фрагментов

Узнаем, как можно создавать пользовательские куски и добавлять их в меню фрагментов. Куски создаются и употребляются в процессе, состоящем из 3-х шагов:

Создание куска с внедрением XML.
Регистрация куска в консоли SQL Server Management Studio (SSMS).
Вызов куска при работе в редакторе запросов.

По дефлоту все куски кода на T-SQL хранятся в последующей папке в виде файлов с расширением .snippet: C:Program FilesMicrosoft SQL Server110ToolsBinnManagementStudioSQLSnippets1033.

Шаг 1-ый. Создание файла куска кода на T-SQL с внедрением XML
Вот куски, которые можно использовать для написания аннотации Select для хоть какой таблицы (он также позволяет использовать аннотацию CASE для проверки равенства в столбце):

CASE_END.SNIPPET File
Case-End
Insert Case…End Construct.
Saleem Hakani (Microsoft Corporation)
Expansion
< ![CDATA[
Select , , , =
CASE
WHEN '' THEN ''
WHEN '' THEN ''
WHEN '' THEN ''
WHEN '' THEN ''
ELSE 'Value not found'
END,
,
From
Go
]>

Шаг 2. Регистрация куска в SSMS

Готовые файлы фрагментов регистрируются в SSMS при помощи диспетчера фрагментов кода (Code Snippets Manager). Можно сделать новейшую папку на базе категории фрагментов либо импортировать отдельные куски в папку My Code Snippets.

Папка с кусками создается так:

Откройте консоль SSMS.
В меню Tools изберите Code Snippets Manager. Раскроется окно диспетчера фрагментов.
Щелкните кнопку Add.
Перейдите к папке, содержащей файл CASE_END.Snippet, и щелкните кнопку Select Folder.

Дальше нужно импортировать кусок в консоль SSMS:

Откройте консоль SSMS.
В меню Tools изберите Code Snippets Manager.
Щелкните кнопку Import в нижней части окна.
Перейдите к папке, содержащей файл CASE_END.Snippet, изберите этот файл и щелкните кнопку Open.

Шаг 3. Вызов и вставка кусок T-SQL в окне редактора кода

Сейчас у вас есть кусок по имени CASE_END, который можно вызывать в редакторе. Для этого нужно надавить CTRL + K + X и избрать категорию, в какой хранится подходящий кусок. Вы также сможете щелкнуть правой кнопкой в окне редактора кода и избрать Insert Snippet.

Используя описанные шаги можно создавать куски кода на T-SQL и регистрировать их в SSMS. Можно также создавать сложные куски разных стандартных задач, существенно облегчив этим свою работу в SQL Server.

Решения на базе фрагментов

Представьте, что вы разработчик либо админ БД, отвечающий за безопасность собственных серверов. На сервере SQL Server имеется 500 имен входа, но вы не понимаете, какие роли назначены тем либо другим именам входа. Если инспектировать имена входа по одному, это может занять часы либо даже деньки. Автоматизация резвой проверки имен входа на уровне сервера позволило бы уменьшить время кодировки, также повысило правильность кода, также производительность работы разработчика и админа БД.

Вот кусок кода, который позволяет стремительно просматривать имена входа на уровне сервера совместно с их ролями и разрешениями. Последующий кусок SecuritySPY выводит перечень имен входа на уровне сервера вкупе с назначенным им ролями:

SQL_SecuritySPY – By Saleem Hakani (Microsoft Corporation)
Shortcut for checking SQL Server Server Role Permissions
Saleem Hakani (Microsoft Corporation)
Expansion
< ![CDATA[
--Author: Saleem Hakani (Microsoft Corporation)
--Website: Http://sqlcommunity.com
Select
'Login Name'= Substring(upper(SUSER_SNAME(SID)),1,40),
'Login Create Date'=Convert(Varchar(24),CreateDate),
'System Admin' = Case SysAdmin
When 1 then 'YES (VERIFY)'
When 0 then 'NO'
End,
'Security Admin' = Case SecurityAdmin
When 1 then 'YES (VERIFY)'
When 0 then 'NO'
End,
'Server Admin' = Case ServerAdmin
When 1 then 'YES (VERIFY)'
When 0 then 'NO'
End,
'Setup Admin' = Case SetupAdmin
When 1 then 'YES (VERIFY)'
When 0 then 'NO'
End,
'Process Admin' = Case ProcessAdmin
When 1 then 'YES (VERIFY)'
When 0 then 'NO'
End,
'Disk Admin' = Case DiskAdmin
When 1 then 'YES (VERIFY)'
When 0 then 'NO'
End,
'Database Creator' = Case DBCreator
When 1 then 'YES (VERIFY)'
When 0 then 'NO'
End
from Master.Sys.SysLogins order by 3 desc
Go
]>

Установив кусок SecuritySPY, вы можете вызывать его в редакторе запросов, как описано выше в этой статье. Можно также щелкнуть правой кнопкой мыши в редакторе запросов и избрать в контекстном меню Insert Snippet.

Создание и внедрение фрагментов позволяет упорядочить задачки по управлению SQL Server. Наличие заблаговременно определенных команд устраняет от необходимости всякий раз делать одну и ту же работу.

Аналогичный товар: Комментирование на данный момент запрещено, но Вы можете оставить ссылку на Ваш сайт.

Комментарии закрыты.