Встроенные шаблоны

Все встроенные шаблоны сгруппированы по назначению:

sql110

Рассмотрим на примере таблицы:

sql111

Допустим нам нужно создать таблицу, т.е. обычный 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…

sql112

Ну или как можно заметить можно нажать Ctrl+Shift+M

Появляется окошко, где мы можем настраивать нужные параметры:

sql113

Пробежались, задали значения:

sql114

Жмём ОК, и наш запрос принимает нормальный вид:

-- =========================================
-- 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

sql115

Теперь внесём в него необходимый код. Для этого в контекстном меню этого шаблона нужно выбрать Edit. Ведь двойной клик – это уже использование шаблона.

sql116

Далее пишем текст запроса, основу я скопирую из предыдущего примера, и внесу некоторые правки:

-- =========================================
-- Создание таблицы справочника
-- =========================================
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)

Открывается окошко:

sql117

Можно заметить, что указать нужно 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

Выполняем его. Таблица успешно создаётся:

sql118

Written by Igor Motskin

Также вы можете записаться на наш бесплатный курс по ASP.NET & Sql Server

Периодически мы проводим обучение и даем возможность стажировки на базе нашей платформы с управлением на SQL. Если вам это интересно, то пожалуйста посмотрите информацию об обучении/стажировке по SQL.