Встроенные шаблоны
Все встроенные шаблоны сгруппированы по назначению:
Рассмотрим на примере таблицы:
Допустим нам нужно создать таблицу, т.е. обычный Create Table. Мы можем писать весь текст вручную, мы можем скопировать уже готовый скрипт и его адаптировать. Но в этом примере мы всё сделаем с помощью шаблонов.
Короче кликаем по нужному шаблону (в примере “Create Table”, после чего появляется новый запрос и в нём текст запроса. У меня получился следующий:
-- ========================================= -- Create table template -- ========================================= USE <database, sysname, AdventureWorks> GO IF OBJECT_ID('<schema_name, sysname, dbo>.<table_name, sysname, sample_table>', 'U') IS NOT NULL DROP TABLE <schema_name, sysname, dbo>.<table_name, sysname, sample_table> GO CREATE TABLE <schema_name, sysname, dbo>.<table_name, sysname, sample_table> ( <columns_in_primary_key, , c1> <column1_datatype, , int> <column1_nullability,, NOT NULL>, <column2_name, sysname, c2> <column2_datatype, , char(10)> <column2_nullability,, NULL>, <column3_name, sysname, c3> <column3_datatype, , datetime> <column3_nullability,, NULL>, CONSTRAINT <contraint_name, sysname, PK_sample_table> PRIMARY KEY (<columns_in_primary_key, , c1>) ) GO
Здесь хочется отметить, что параметр заключается в угловые скобки и состоит из 3-х частей, разделённых запятыми. Например для следующего параметра:
<schema_name, sysname, dbo>
schema_name – имя параметра в шаблоне
sysname – тип параметра (int, char(20) и т.п., а также sysname)
dbo – значение по умолчанию
В выше приведённом шаблоне тип создаваемого столбца также задаётся отдельным параметром, поэтому при объявлении самого столбца тип не задаётся:
<columns_in_primary_key, , c1> <column1_datatype, , int> ……
Но если бы мы точно знали, что столбец c1 должен быть типа int, то могли бы записать так:
<columns_in_primary_key, int , c1> ……
Вернёмся к примеру.
Осталось только параметры шаблона задать. Для этого в главном меню -> Query -> Specify Values for Template Parameters…
Ну или как можно заметить можно нажать Ctrl+Shift+M
Появляется окошко, где мы можем настраивать нужные параметры:
Пробежались, задали значения:
Жмём ОК, и наш запрос принимает нормальный вид:
-- ========================================= -- Create table template -- ========================================= USE BestDatabase GO IF OBJECT_ID('dbo.ForDelete', 'U') IS NOT NULL DROP TABLE dbo.ForDelete GO CREATE TABLE dbo.ForDelete ( id int NOT NULL, name char(20) NULL, kode char(20) NULL, CONSTRAINT PK_ForDelete PRIMARY KEY (id) ) GO
Вот справочник и готов, а кода мы фактически и не писали! Но ведь я взял обычный шаблон, я бы сказал просто демонстрационный.
Пользовательские шаблоны
А теперь давайте создадим свой шаблон для создания справочника, чтобы в будущем нам нужно было делать минимум операций.
Для этого в нужной папке браузера шаблонов создаём новый.
Примечание: Вероятно есть смысл в создании специальной папки для пользовательских шаблонов, но я в примере новый шаблон добавил в папку Table
Теперь внесём в него необходимый код. Для этого в контекстном меню этого шаблона нужно выбрать Edit. Ведь двойной клик – это уже использование шаблона.
Далее пишем текст запроса, основу я скопирую из предыдущего примера, и внесу некоторые правки:
-- ========================================= -- Создание таблицы справочника -- ========================================= USE <database, sysname, DataBaseName> GO IF OBJECT_ID('<schema_name, sysname, dbo>.<table_name, sysname, sample_table>', 'U') IS NOT NULL DROP TABLE <schema_name, sysname, dbo>.<table_name, sysname, sample_table> GO CREATE TABLE <schema_name, sysname, dbo>.<table_name, sysname, sample_table> ( id int NOT NULL, name char(20) NULL, code char(20) NULL, CONSTRAINT PK_<table_name, sysname, sample_table> PRIMARY KEY (id) ) GO
Можно сохранять шаблон.
Использование пользовательского шаблона
Как и раньше двойной клик на имени шаблона, открывается новый запрос заполненный текстом шаблона. Заходим в настройку параметров шаблона (Ctrl+Shift+M)
Открывается окошко:
Можно заметить, что указать нужно 3 параметра, но если имя схемы в проекта будет всегда dbo, то можно и его убрать из параметров.
После чего будет сформирован следующий скрипт:
-- ========================================= -- Создание таблицы справочника -- ========================================= USE TSQL2012 GO IF OBJECT_ID('dbo.NewDictionary', 'U') IS NOT NULL DROP TABLE dbo.NewDictionary GO CREATE TABLE dbo.NewDictionary ( id int NOT NULL, name char(20) NULL, code char(20) NULL, CONSTRAINT PK_NewDictionary PRIMARY KEY (id) ) GO
Выполняем его. Таблица успешно создаётся:
Written by Igor Motskin
Также вы можете записаться на наш бесплатный курс по ASP.NET & Sql Server
Периодически мы проводим обучение и даем возможность стажировки на базе нашей платформы с управлением на SQL. Если вам это интересно, то пожалуйста посмотрите информацию об обучении/стажировке по SQL.