3. Диалоговое окно Generate Create Scripts будет сконфигурировано только для избранного объекта. Например, после выбора базы данных Novelty оно будет иметь такой вид, как на рис. 8.3, с отображением всех объектов этой базы данных, но еще без выбора отдельных объектов для работы с генерируемым сценарием.
Рис. 8.3. Диалоговое окна Generate Create Scripts для базы данных Novelty
4. Во вкладке General (Общие) можно указать объекты, включаемые в генерируемый сценарий, выбрав один или несколько объектов в списке Objects on Novelty (Объекты базы данных Novelty) и щелкнув на кнопке Add (Включить в сценарий) либо дважды щелкнув на выбранном объекте. Для включения в сценарий целой группы объектов, например всех объектов одного типа, т.е. всех таблиц или всех представлений, нужно установить соответствующий флажок, т.е. Script all Objects (Включить все объекты), All tables (Все таблицы), All views (Все представления) и т.д. В данном примере выберите флажок Script all objects.
5. Выберите вкладку Formatting (Форматирование) и, помимо указанных по умолчанию параметров, установите флажок Include descriptive headers in the script files (Включить в сценарий описательные заголовки).
6. Щелкните на кнопке OK, и на экране появится диалоговое окно Browse for Folder (Выбор папки), где необходимо выбрать папку, в которой следует сохранить файл генерируемого сценария. Обратите внимание, что по умолчанию выбирается папка Create Scripts текущего проекта, хотя ее, конечно, можно выбрать по своему желанию. В данном примере используется предлагаемая по умолчанию папка Create Scripts. Для продолжения работы щелкните на кнопке OK.
РИС. 8.4. Итоговый вид окна Solution Explorer с файлами сценариев для базы данных Novelty
Поскольку в диалоговом окне Generate Create Scripts были выбраны все объекты базы данных, то в проект базы данных будет включено несколько файлов сценария, как показано на рис. 8.4. Учтите, что данный сценарий можно включить в один файл. Для этого нужно во вкладке Options (Параметры) диалогового окна Generate Create Scripts выбрать в группе Files to Generate (Генерировать файлы) переключатель Create one file (Создать один файл).
СОВЕТ
Устанавливая флажок Script database (Сгенерировать сценарий базы данных) во вкладке Options диалогового окна Generate Create Scripts, можно даже сгенерировать сценарий создания самой базы данных. В этом примере проект базы данных NoveltyData содержит набор сценариев для создания всех объектов базы данных Novelty бы применения этих сценариев демонстрируются в следующих разделах.
8. Для просмотра (или изменения) содержимого файла сценария дважды щелкните на нем в окне Solution Explorer. На рис. 8.5 показано содержимое сценария dbo.tblOrder.tab, который создает таблицу tblOrder в базе данных Novelty.
Обратите внимание на то, что эти сценарии создают только схему базы данных, но не вставляют в созданные таблицы никаких данных. Способы копирования данных в таблицы будут показаны далее в разделе о командных файлах.
РИС. 8.5. Содержимое сгенерированного сценария создания таблицы tblOrder
Сценарии изменения данных
Для внесения изменений в существующую схему базы данных используются сценарии изменения данных. Хотя они могут создаваться вручную, все же предпочтительнее для этого использовать специальные инструменты. В главах 1, "Основы построения баз данных", и 2, "Запросы и команды на языке SQL", рассматриваются инструменты Visual Studio .NET, предназначенные для работы с базой данных. Они способны автоматически создавать сценарий для любых изменений схемы базы данных.
Допустим, требуется создать новое поле StartDate в таблице tblEmployee для даты зачисления каждого сотрудника. Для этого выполните перечисленные ниже действия.
1. В окне Server Explorer раскройте папку Tables базы данных Novelty и щелкните правой кнопкой мыши на таблице tblEmployee.
2. Выберите в контекстном меню команду Design Table (Создание таблицы) для перехода в режим конструктора таблицы.
3. Создайте новое поле StartDate и укажите для него тип данных datetime, как показано на рис. 8.6.
Чтобы внести данное поле во все уже инсталлированные и доставленные базы данных в географически разных местах, потребуется создать сценарий изменений. Для этого выполните перечисленные ниже действия.
1. Выберите команду меню Diagram→Generate Change Script (Диаграмма→Генерация сценария изменения) или щелкните на кнопке Generate Change Script (Генерация сценария изменения) в панели инструментов. На экране появится диалоговое окно Save Change Script (Сохранение сценария изменения) с областью предварительного просмотра текста сценария (рис. 8.7).
РИС. 8.6. Создание нового поля StartDate в таблице tblEmployee
РИС. 8.7. Диалоговое окна Save Change Script с содержимым сценария вставки поля StartDate в таблицу tblEmployee
2. Щелкните на кнопке Yes, и на экране появится стандартное диалоговое окно Save As (Сохранить как) с предложением сохранить данный сценарий в папке Change Scripts текущего проекта базы данных.
3. Щелкните на кнопке Save для сохранения сценария с принимаемым по умолчанию именем tblEmployee.sql.
4. Закройте режим конструктора таблицы и в ответ на предложение сохранить внесенные изменения щелкните на кнопке No. В следующем разделе описываются способы внесения изменений с помощью запуска только что созданного сценария SQL.
5. Щелкните дважды на сценарии tblEmployee.sql для просмотра содержимого сохраненного файл сценария, которое показано на рис. 8.8.
РИС. 8.8. Просмотр содержимого файла сценария tblEmployee.sql
(Учтите, что вместо учетного имени sa в строке User: sa может быть указано другое используемое вами учетное имя пользователя SQL Server, а вместо имени сервера HR426 в строке Server: HR426 — имя другого используемого вами сервера. — Прим. ред.)
Запуск сценария
Сценарий можно запустить непосредственно в окне Solution Explorer. Проще всего перетащить сценарий и опустить его на ссылку на базу данных, в которую нужно внести изменения. Или иначе, щелкните правой кнопкой мыши на сценарии и выберите в контекстном меню команду Run (Запустить) или Run On (Запустить для). Команда Run выполняет сценарий по отношению к используемой по умолчанию ссылке на базу данных, а команда Run On позволяет выбрать другую базу данных в одноименном диалоговом окне (рис. 8.9). Учтите, что, кроме выбора уже существующей ссылки на базу данных, можно создать совершенно новую ссылку. (Перед этим на экране появится диалоговое окно SQL Server Login для выбора сервера и регистрации на нем. — Прим. ред.)
РИС. 8.9. Диалоговое окно Run On
НА ЗАМЕТКУ
Для запуска сценария можно выбрать временную ссылку на базу данных. Щелкните дважды на последнем элементе <temporary reference> списка ссылок для отображения уже знакомого диалогового окна Data Link Properties, предназначенного для определения новой ссылки на базу данных. Однако эта ссылка не обязательно должна быть включена в проект или окно Server Explorer.
Для внесения изменений в базу данных с помощью сценария tblEmployee.sql выполните перечисленные ниже действия.
1. Убедитесь в том, что таблица tblEmployee не содержит поле StartDate. Для этого в окне Server Explorer раскройте папку таблицы tblEmployee для просмотра всех полей данной таблицы, как показано на рис. 8.10.
2. Раскройте папку Change Scripts в окне Solution Explorer и выберите сценарий tblEmployee.sql.
3. В окне Solution Explorer перетащите и опустите данный сценарий на ссылку на базу данных Novelty.
4. После этого на экране появится диалоговое окно Execute Scripts and Queries (Выполнить сценарии или запросы) для подтверждения запуска сценария для указанной базы данных. Щелкните на кнопке Yes для запуска сценария и продолжения работы.
5. Повторите действия, описанные в п. 1, чтобы вновь отобразить поля таблицы tblEmployee (или просто щелкните на кнопке Refresh в панели инструментов окна Server Explorer) для того, чтобы убедиться в наличии нового поля StartDate в таблице tblEmployee.
РИС. 8.10. Отображение полей таблицы tblEmployee
Командные файлы
Создав большое количество сценариев создания и изменения разных объектов базы данных, неплохо объединить их в одной логической группе для одновременного запуска. Именно для этого в Visual Studio .NET предусмотрены командные файлы с расширением .cmd. Они могут использоваться в операционных системах Windows 2000 или Windows XP, которые способны распознать такие файлы. Например, командный файл можно применить для загрузки данных во вновь созданную таблицу, экспортируя данные из уже существующей базы данных.
НА ЗАМЕТКУ
Способность простого и автоматического создания сценария загрузки данных, помимо создания схемы и объектов базы данных, является именно тем компонентом среды Visual Studio .NET, которого нет в программе SQL Server Enterprise Manager.
Итак, попробуем создать один командный файл, чтобы автоматически запустить все сценарии для создания совершенно новой версии базы данных Novelty на другом компьютере. Хотя новая версия базы данных будет иметь собственные данные о клиентах, сотрудниках и заказах, данные о товарах в таблице tblInventory будут одинаковыми. Для этого в новой базе данных нужно наполнить таблицу tblInventory данными о товарах из уже существующей таблицы tblInventory.