(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

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

Источник: TechNetMagazine
Салим Хакани

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

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

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

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

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

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

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

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

По умолчанию все фрагменты кода на T-SQL хранятся в следующей папке в виде файлов с расширением .snippet: C:\Program Files\Microsoft SQL Server\110\Tools\Binn\ManagementStudio\SQL\Snippets\1033.

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

CASE_END.SNIPPET File
<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>Case-End</Title>
<Description> Insert Case...End Construct. </Description>
<Author> Saleem Hakani (Microsoft Corporation) </Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="SQL">
<![CDATA[
Select <Column_Name1>, <Column_Name2>, <Column_Name3>, <Column_Name4>=
  CASE <Column_Name4>
    WHEN '<value>' THEN '<Result>'
    WHEN '<value>' THEN '<Result>'
    WHEN '<value>' THEN '<Result>'
      WHEN '<value>' THEN '<Result>'
    ELSE 'Value not found'
  END,
<Column_Name5>, <Column_Name6>
From <Table_Name>
Go
]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

Шаг 2. Регистрация фрагмента в SSMS

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

Папка с фрагментами создается так:

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

Далее надо импортировать фрагмент в консоль SSMS:

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

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

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

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

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

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

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

<?xml version="1.0" encoding="utf-8" ?>
<CodeSnippets xmlns="http://schemas.microsoft.com/VisualStudio/2005/CodeSnippet">
<CodeSnippet Format="1.0.0">
<Header>
<Title>SQL_SecuritySPY - By Saleem Hakani (Microsoft Corporation)</Title>
<Description> Shortcut for checking SQL Server Server Role Permissions </Description>
<Author> Saleem Hakani (Microsoft Corporation) </Author>
<SnippetTypes>
<SnippetType>Expansion</SnippetType>
</SnippetTypes>
</Header>
<Snippet>
<Code Language="SQL">
<![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
]>
</Code>
</Snippet>
</CodeSnippet>
</CodeSnippets>

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

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

Ссылки по теме


 Распечатать »
 Правила публикации »
  Обсудить материал в конференции Microsoft »
Обсудить материал в конференции Дизайн, графика, обработка изображений »
Написать редактору 
 Рекомендовать » Дата публикации: 13.02.2013 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Microsoft Windows Professional 10, Электронный ключ
Microsoft SQL CAL 2017 Sngl OLP 1License NoLevel DvcCAL
Microsoft SQL Server Standard Edition 2017 Sngl OLP 1License NoLevel
Microsoft Visual Studio Professional w/MSDN AllLng License/Software Assurance Pack OLP 1 License No Level Qualified
Microsoft Office 365 для Дома 32-bit/x64. 5 ПК/Mac + 5 Планшетов + 5 Телефонов. Подписка на 1 год.
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Безопасность компьютерных сетей и защита информации
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
Новые программы для Windows
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
Обсуждения в форумах
Отличается ли ДрифтКазино от беттинга? (9)
Друзья, давно заметил, что на Дрифте уже несколько месяцев во всю рекламируется и предлагается...
 
Windows 10 загружен процессор (2)
Добрый день! На рабочем ПК Windows 10, компьютер тормозит, в диспетчере задач выдает что диск...
 
ErWin to Access Relation Error (2)
Всем привет! ErWin при попытке генерации в Ассеss выдаёт: ERwinDatabase.Relations.Append...
 
Помощь по MS Access (331)
Доброе время суток. Случайно оказался на этом сайте, искал статьи по OLAP. Вижу, что...
 
Смена типа уровня модели (1)
Здравствуйте. При запуске программы выбрал уровень "Логический" вместо "Логический и...
 
 
 



    
rambler's top100 Rambler's Top100