Программирование в Microsoft SQL Server 2000

         

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


Язык SQL несколько отличается от большинства других языков программирования, таких как C++ или Microsoft Visual Basic, тем, что в нем есть относительно немного операторов, но синтаксис их может быть довольно сложным. Одна из претензий, часто предъявляемых к языку SQL, состоит в том, что все данные извлекаются с помощью одного оператора: оператора SELECT.

Шаблоны являются превосходным средством для работы с составными операторами SQL. При работе с SQL длительное время, вы начинаете замечать, что часто используете лишь несколько более или менее стандартных комбинаций основных команд: например оператор SELECT для двух таблиц, имеющих внутреннюю связь INNER JOIN, или оператор CREATE TABLE с идентификационным столбцом IDENTITY. Сохранив, эти операторы как шаблон, вы одной командой сможете воспроизвести весь содержащийся в шаблоне текст. Для настройки операторов вы можете воспользоваться удобным диалоговым окном.

Совет. Шаблоны могут применяться не только к одной команде. Они могут состоять из любого числа операторов, подобно файлам SQL-сценариев, и могут содержать множество команд и пакетов.

Несмотря на широту предоставляемых возможностей, шаблоны просты в использовании и создании. Они являются обычными файлами SQL-сценариев с расширением .tql (по умолчанию). Элементы шаблона могут настраиваться. Например, в операторе CREATE TABLE имена столбцов и таблиц могут быть определены как параметры. В шаблоне параметр имеет такую форму: <имя_параметра, тип_данных, значение>. Например, представленный ниже шаблон сценария, содержит два параметра: table_name и sort_name:

SELECT * FROM <table_name, sysname, test_view> ORDER BY <sort_column, sysname, test_column>

Сценарий определяет оба параметра как имеющие тип данных sysname, который является специальным типом, используемым для указания имен объектов. Параметр table_name имеет значение по умолчанию "test_view", а параметр sort_column имеет значение по умолчанию "test_column".

Анализатор запросов Query Analyzer предоставляет диалоговое окно Replace Template Parameters (Замещение параметров шаблона) для удобного ввода текста в шаблон. Чтобы отобразить это диалоговое окно, откройте шаблон в окне Query (Запрос) и выберите Replace Template Parameters (Замещение параметров шаблона) из меню Edit (Правка).

Совет. Для открытия диалогового окна Replace Template Parameters (Замещение параметров шаблона) вы также можете воспользоваться комбинацией клавиш Ctrl + Shift + M.

Сформируйте оператор CREATE TABLE с помощью шаблона

  1. В Object Browser выберите вкладку Templates (Шаблоны). Query Analyzer отобразит список категорий для доступных шаблонов.



    увеличить изображение

  2. Раскройте папку CREATE TABLE и дважды щелкните на кнопке CREATE TABLE WITH IDENTITY. Query Analyzer откроет новое окно запроса и вставит туда шаблонный текст.


    увеличить изображение

  3. В меню Edit (Правка) выберите Replace Template Parameters (Замещение параметров шаблона). Query Analyzer откроет диалоговое окно Replace Template Parameters (Замещение параметров шаблона).



  4. Установите следующие значения параметров: ПараметрЗначение
    Table_nameTemplateTable
    Column_1TemplateID
    Datatype_for_column_1Smallint
    Seed1
    Increment1
    Column_2Description
    Datatype_for_column_2Varchar (20)


  5. Нажмите Replace All (Заместить все). Query Analyzer закроет диалоговое окно и подставит значения параметра в параметр в шаблоне.


    увеличить изображение

  6. Убедитесь, что база данных Aromatherapy выбрана в панели инструментов анализатора запросов Query Analyzer.


    увеличить изображение

  7. Чтобы выполнить оператор, нажмите кнопку Execute Query (Выполнить запрос)
    в панели инструментов анализатора запросов Query Analyzer. Query Analyzer создаст таблицу.
  8. В Object Browser выберите вкладку Objects (Объекты), раскройте папку User Tables и нажмите клавишу F5 для обновления содержимого экрана. Object Browser отобразит в списке новую таблицу TemplateTable.


    увеличить изображение

  9. Закройте окно Query (Запрос), содержащее оператор CREATE TABLE.



Содержание раздела