Поделиться через


Создание пользовательских шаблонов

Среда Среда SQL Server Management Studio поставляется с шаблонами, с помощью которых можно решить многие стандартные задачи, однако реальная мощь шаблонов состоит в возможности создания пользовательского шаблона для часто используемого сложного сценария. В этом практическом задании будет создан простой сценарий с несколькими параметрами, однако шаблоны применимы и для длинных сценариев с повторениями.

Использование пользовательских шаблонов

Использование пользовательских шаблонов

  1. В обозревателе шаблонов раскройте узел Шаблоны SQL Server, щелкните правой кнопкой мыши элемент Хранимая процедура, установите указатель на пункте Создать и выберите команду Папка.

  2. Введите Пользовательская в качестве имени новой папки шаблона и нажмите клавишу ВВОД.

  3. Щелкните правой кнопкой мыши папку Пользовательская, установите указатель на пункте Создать и выберите команду Шаблон.

  4. Введите WorkOrdersProc в качестве имени нового шаблона и нажмите клавишу ВВОД.

  5. Щелкните правой кнопкой мыши значок WorkOrderProc и выберите команду Изменить.

  6. В диалоговом окне Подключиться к компоненту Database Engine проверьте сведения о соединении и нажмите кнопку Соединить.

  7. В редакторе запросов введите следующий сценарий, чтобы создать хранимую процедуру, выполняющую поиск заказов для нужной детали, в данном случае роликовых коньков. Код сценария можно скопировать из учебника.

    USE AdventureWorks2008R2;
    GO
    IF EXISTS (
    SELECT * 
       FROM INFORMATION_SCHEMA.ROUTINES 
       WHERE SPECIFIC_NAME = 'WorkOrdersForBlade')
       DROP PROCEDURE dbo.WorkOrdersForBlade;
    GO
    CREATE PROCEDURE dbo.WorkOrdersForBlade
    AS
    SELECT Name, WorkOrderID 
    FROM Production.WorkOrder AS WO
    JOIN Production.Product AS Prod
    ON WO.ProductID = Prod.ProductID
    WHERE Name = 'Blade';
    GO
    
  8. Нажмите клавишу F5, чтобы выполнить сценарий и создать процедуру WorkOrdersForBlade.

  9. В обозревателе объектов щелкните правой кнопкой мыши свой сервер и выберите команду Создать запрос. Будет открыто новое окно редактора запросов.

  10. В редакторе запросов введите EXECUTE dbo.WorkOrdersForBlade и нажмите клавишу F5, чтобы выполнить запрос. Убедитесь, что в панели Результаты отображается список заказов на производство для роликовых коньков.

  11. Измените сценарий шаблона (сценарий из шага 7), заменив в четырех местах имя товара «Роликовые коньки» параметром <product_name, nvarchar(50), name>.

    ПримечаниеПримечание

    Параметры требуют три различных элемента: имя замещаемого параметра, тип данных параметра, значение параметра по умолчанию.

  12. Сценарий должен иметь следующий вид:

    USE AdventureWorks2008R2;
    GO
    IF EXISTS (
    SELECT * 
       FROM INFORMATION_SCHEMA.ROUTINES 
       WHERE SPECIFIC_NAME = 'WorkOrdersFor<product_name, nvarchar(50), name>')
       DROP PROCEDURE dbo.WorkOrdersFor<product_name, nvarchar(50), name>;
    GO
    CREATE PROCEDURE dbo.WorkOrdersFor<product_name, nvarchar(50), name>
    AS
    SELECT Name, WorkOrderID 
    FROM Production.WorkOrder AS WO
    JOIN Production.Product AS Prod
    ON WO.ProductID = Prod.ProductID
    WHERE Name = '<product_name, nvarchar(50), name>';
    GO
    
  13. В меню Файл выберите команду Сохранить WorkOrdersProc.sql, чтобы сохранить шаблон.

Проверка пользовательского шаблона

  1. В обозревателе шаблонов последовательно раскройте элементы Хранимая процедура и Пользовательская, а затем дважды щелкните шаблон WorkOrderProc.

  2. В диалоговом окне Подключение к компоненту Database Engine введите сведения о соединении и нажмите кнопку Соединить. Будет открыто новое окно редактора запросов, отображающее содержимое шаблона WorkOrderProc.

  3. В меню Запрос выберите пункт Задание значений для параметров шаблона.

  4. В диалоговом окне Замена параметров шаблона в поле product_name введите FreeWheel (заменяя содержимое по умолчанию), а затем нажмите кнопку ОК, чтобы закрыть диалоговое окно Замена параметров шаблона и изменить сценарий в редакторе запросов.

  5. Нажмите F5, чтобы выполнить запрос и создать процедуру.