Предыдущая статья >> [Операторы описания данных DDL]
Разработка скриптов
В процессе работы с БД возникают различные ситуации, когда целесообразно было бы иметь сохраненные структуру и содержимое БД, например:
необходимость создание дистрибутива БД;
отладка БД и работающего с ней ПО и т.п.;
потеря всей БД или ее части.
Информацию о структуре и содержимом БД можно сохранить в виде текстового файла, содержащего последовательность операторов на диалекте языка SQL, позволяющих воссоздать исходную БД. Такой текстовый файл называют сценарием или скриптом (script). С понятием скрипта тесно связано понятие пакета (package).
Пакет – это последовательность операторов Transact-SQL, интерпретируемых сервером совместно. Операторы, составляющие пакет, посылаются на сервер как единое целое. Оператор GO отмечает конец пакета.
Таким образом, скриптом можно также назвать набор из одного или более пакетов, которые хранятся в одном текстовом файле с расширением *.sql.
Подготовленный скрипт можно исполнить с помощью утилиты Query Analyzer (QA), открыв в ней соответствующий файл скрипта и запустив его. Также можно исполнить скрипт с помощью консольной утилиты osql.exe, которая будет рассмотрена далее. Утилита QA обладает графическим интерфейсом, вследствие чего ее использование в большинстве случаев оказывается более удобным. Однако при исполнении скрипта в составе дистрибутива необходимо использовать консольную утилиту osql.exe.
Рассмотрим принцип создания скриптов на примере ранее рассмотренной учебной БД Supply. Разработаем два скрипта: первый для создания структуры БД (файл structure.sql), а второй – для заполнения таблиц (файл data.sql). Скрипт для создания структуры БД будет содержать последовательность операторов языка DDL, создающих саму БД, таблицы, ограничения целостности и связи между таблицами. В этом же скрипте могут содержаться операторы создания и других объектов: правил, умолчаний, представлений, хранимых процедур и т.п. Скрипт для заполнения таблиц БД будет содержать последовательность операторов языка INSERT, заполняющих таблицы БД. Пример скриптов приведен в приложении 1.
Генерация скриптов
Создание скрипта вручную – процесс трудоемкий, особенно для БД со сложной структурой. Поэтому утилита Enterprise Manager (EM) предоставляет возможность генерации различных скриптов для существующей БД: от простейшего скрипта для одной таблицы до скрипта, воссоздающего всю структуру БД.
Рассмотрим процесс генерации скрипта для создания таблиц БД Supply и связей между ними. Чтобы сгенерировать скрипт, запустим EM и выберем БД на дереве объектов. Далее выполним действие Действие–Все задачи–Generate SQL Script. В появившемся диалоговом окне (рис.1) на вкладке General нажмем кнопку Show All для отображения всех существующих объектов БД и затем установим флажок Tables, что означает создание скрипта только для таблиц. В общем случае можно выбрать любые из доступных на вкладке объектов.

На вкладке Formatting оставим только флажок Generate the CREATE command for each object.
Зайдем на вкладку Options и установим флажок Script PRIMARY keys, FOREIGN keys, defaults, and check constraints – добавить последовательность операторов для создания первичных ключей, связей, умолчаний и ограничений.
Нажмем ОК, после чего введем имя файла скрипта в открывшемся диалоговом окне. После этого скрипт можно использовать.
Утилита osql
Данная утилита позволяет выполнять команды Transact-SQL, аналогично утилите QA, в режиме командной строки. Для получения справочной информации об основных ключах запуска этой утилиты необходимо в командной строке набрать osql /?. Перечень ключей также представлен в приложении 2. Обратим внимание, что при наборе ключей необходимо учитывать регистр символов.
Для примера рассмотрим командную строку, выполняющую подключение в интерактивном режиме пользователя sa с паролем 111 к БД Supply сервера FVT\SRV:
osql -S FVT\SRV -U sa -P 111 -d Supply
Другой пример позволяет подключиться пользователю sa с паролем 111 к БД Master сервера FVT\SRV и выполнить файл со скриптом structure.sql для создания новой БД, поместив результаты выполнения запросов в файл results.txt:
osql -S FVT\SRV -U sa -P 111 -d master -i structure.sql
-o results.txt
Утилита osql может быть включена в состав дистрибутива программного продукта, использующего MS SQL Server. При установке дистрибутива утилита может быть автоматически запущена для выполнения необходимого скрипта, например скрипта, создающего новую БД или добавляющего новых пользователей сервера.
ВНИМАНИЕ! Для правильного выполнения скриптов, содержащих названия объектов на русском языке, необходимо сохранить файл скрипта в кодировке Unicode. Для этого при сохранении файла скрипта в диалоговом окне Save Query следует выбрать пункт Unicode в списке File Format.
Следующая статья >> [СОЗДАНИЕ ДИСТРИБУТИВОВ КЛИЕНТСКИХ ПРИЛОЖЕНИЙ]