Пошаговое руководство. Создание и развертывание базы данных, ссылающейся на другую базу данных
В этом пошаговом руководстве создается проект базы данных для базы данных, которая ссылается на другую базу данных. Для управления базой данных, на которую ссылается проект, также используется Visual Studio Premium, но сама эта база данных будет в другом решении. Такой подход имитирует обычный сценарий, в котором разные разработчики управляют разными базами данных, или разработчик не может развернуть базу данных, на которую указывает ссылка.
В данном пошаговом руководстве рассмотрены следующие задачи:
создание проекта базы данных;
ссылка на файл DBSCHEMA, созданный другим проектом базы данных;
определение переменных и их значений для проекта базы данных, на который указывает ссылка;
развертывание проекта базы данных в изолированной среде разработки.
Обязательные компоненты
Необходимо установить Visual Studio. Дополнительно необходимо выполнить Пошаговое руководство. Создание и развертывание новой базы данных с управлением версиями и развернуть в изолированной среде разработки результирующую базу данных. Чтобы добавить проект в систему управления версиями, необходимо установить программное обеспечение для управления версиями, такое как Visual Studio Team Foundation Server.
Создание проекта базы данных
В меню Файл последовательно выберите команды Создать и Проект.
Отобразится диалоговое окно Новый проект.
В области Установленные шаблоны разверните узел База данных и щелкните SQL Server.
Примечание
Если вы используете Visual Studio Professional, вместо Установленных шаблонов последовательно раскройте узлы База данных и SQL Server и щелкните Дополнительно.
В списке шаблонов выберите Проект базы данных SQL Server 2008.
В поле Имя введите OrdersDB.
Установите флажок Создать каталог для решения.
Примите значения по умолчанию для Местоположение, Имя решения и Добавить в систему управления версиями и нажмите кнопку ОК.
Примечание
На этом этапе можно добавить решение в систему управления версиями.В этом пошаговом руководстве добавление решения в систему управления версиями выполняется в завершающей процедуре.
Новый проект базы данных, ProductsDB, появится в обозревателе решений.
В меню Вид выберите команду Представление схемы базы данных.
Появится представление схемы, если оно еще не отображалось.
Далее необходимо добавить таблицы в проект базы данных.
Добавление в проект базы данных таблицы "Позиции_заказа".
В Представлении схемы щелкните правой кнопкой мыши проект OrdersDB, выберите команду Добавить, а затем Таблица.
Откроется диалоговое окно Добавление нового элемента.
В Шаблоны щелкните Таблица.
Примечание
Для быстрого и простого поиска шаблона таблицы, в списке Категории выберите Таблицы и представления.
В поле Имя введите "Позиции_заказа" в качестве имени новой таблицы.
Нажмите кнопку Добавить, чтобы добавить таблицу в проект базы данных.
В обозревателе решений отображается новый файл для таблицы проекта базы данных. В представлении схемы отображается новый объект таблицы. Откроется редактор Transact-SQL, в котором отобразится определение новой таблицы.
В редакторе Transact-SQL измените определение таблицы следующим образом:
-- ============================================= -- Create OrderItems table -- ============================================= CREATE TABLE [dbo].[OrderItems] ( [POID] INT NOT NULL, [ItemID] INT NOT NULL, [ProductID] INT NOT NULL, [Quantity] INT NOT NULL, [Price] FLOAT NOT NULL, [Notes] NVARCHAR(75) NULL ) ON [PRIMARY]
В меню Файл выберите Сохранить dbo.Позиции_заказа.table.sql.
Разверните узел dbo.Позиции_заказа в представлении схемы.
Разверните узел Столбцы в таблице "dbo.Позиции_заказа".
Отобразятся столбцы, определенные в редакторе Transact-SQL.
Далее добавьте в таблицу "Позиции_заказа" первичный ключ.
Добавление первичного ключа в таблицу "Позиции_заказа"
В представлении схемы щелкните правой кнопкой мыши пункт dbo.Позиции_заказа и выберите последовательно пункты Добавить и Первичный ключ.
Откроется диалоговое окно Добавление нового элемента.
В поле Имя введите имя "ПК_позиции_заказа" в качестве имени нового первичного ключа.
Чтобы добавить первичный ключ, щелкните Добавить.
В обозревателе решений отображается новый файл первичного ключа в проекте базы данных. В представлении схемы отображается новый объект первичного ключа. Откроется редактор Transact-SQL, в котором отобразится определение нового ключа.
Примечание
Значок первичного ключа отображается с красным кружком, содержащим белый знак "x", указывающий, что определение по умолчанию содержит ошибку.Такое поведение предсказуемо, поскольку определение по умолчанию ссылается на несуществующий столбец "column_1".
В редакторе Transact-SQL отредактируйте определение первичного ключа следующим образом:
-- ============================================= -- Create PK_OrderItems primary key -- ============================================= ALTER TABLE [dbo].[OrderItems] ADD CONSTRAINT [PK_OrderItems] PRIMARY KEY CLUSTERED ([POID], [ItemID]) ON [PRIMARY]
В меню Файл выберите Сохранить dbo.Позиции_заказа.ПК_позиции_заказа.pkey.sql.
Индикатор ошибки исчезает из значка, то есть определение первичного ключа теперь допустимо.
Далее следует добавить межбазовую ссылку.
Добавление представления, ссылающегося на таблицу в другой базе данных
В представлении схемы щелкните правой кнопкой мыши узел Views, выберите команду Добавить, а затем Таблица.
В поле Имя введите "Представление_данных_позиции" в качестве имени нового представления и нажмите кнопку Добавить.
В обозревателе решений отображается новый файл для представления в проекте базы данных. В представлении схемы отобразится новый объект представления. Откроется редактор Transact-SQL, в котором отобразится определение нового представления.
Примечание
В представлении схемы отображается значок представления с красным кружком, содержащим белый знак "x", указывающий, что определение по умолчанию содержит ошибку.Такое поведение предсказуемо, поскольку определение по умолчанию ссылается на несуществующую таблицу или представление "[sometableorview]".
В редакторе Transact-SQL отредактируйте определение таблицы следующим образом:
-- ============================================= -- Create ItemDetailsView view -- ============================================= CREATE VIEW [dbo].[ItemDetailsView] AS SELECT O.[POID], O.[ItemID], P.[ProductName], P.[UnitPrice], O.[Quantity], O.[Price], O.[Notes] FROM [dbo].[OrderItems] AS O INNER JOIN [ProductsDB].[dbo].[Products] AS P ON P.[ProductID] = O.[ProductID]
В меню Файл выберите Сохранить dbo.Представление_данных_позиции.view.sql.
В меню Вид выберите пункт Список ошибок.
В окне Список ошибок отобразится шесть ошибок. Ошибки возникают потому, что Visual Studio Premium не может проверить будет ли база данных, на которую ссылается проект, находиться на целевом сервере при развертывании проекта базы данных. Это важное условие, т. к. проект можно развернуть в другом целевом расположении. Для устранения ошибок необходимо определить межбазовую ссылку.
Определение межбазовой ссылки
В обозревателе решений разверните проект "Позиции_заказа" и щелкните узел Ссылки.
В меню Проект выберите команду Добавить ссылку на базу данных.
Примечание
Также можно щелкнуть узел Ссылки и правой кнопкой мыши выбрать пункт Добавить ссылку на базу данных.
Появится диалоговое окно Добавить ссылку на базу данных. Поскольку решение содержит только один проект базы данных, схема проекта базы данных (DBSCHEMA) задается по умолчанию.
Нажмите кнопку Обзор.
Отобразится диалоговое окно Выбор файла базы данных.
Укажите файл БД_товаров.dbschema, созданный при построении проекта в предварительном пошаговом руководстве (например, Мои документы\Visual Studio 2008\Проекты\БД_товаров\БД_товаров\sql\БД_товаров.dbschema), затем нажмите кнопку Открыть.
В группе Переменные ссылок на базу данных установите флажок Определить переменную базы данных. В поле Имя введите Ссылочная_переменная_БД. В поле Значение введите БД_товаров.
Примечание
В пошаговом руководстве показано, что база данных, на которую ссылается проект, всегда находится на том же сервере, что и база данных, к которой добавляется ссылка.Таким образом, нет необходимости в определении переменных для имени сервера.
В диалоговом окне Обновление объектов и скриптов схемы установите флажок Обновить существующие определения объектов схемы и скрипты для использования ссылочных переменных базы данных и нажмите кнопку ОК.
Чтобы отобразить сведения о внесенном изменении, в диалоговом окне Просмотр изменений, выберите INNER JOIN и нажмите кнопку Применить.
Определение представления обновится следующим образом:
-- ============================================= -- Create ItemDetailsView view -- ============================================= CREATE VIEW [dbo].[ItemDetailsView] AS SELECT O.[POID], O.[ItemID], P.[ProductName], P.[UnitPrice], O.[Quantity], O.[Price], O.[Notes] FROM [dbo].[OrderItems] AS O INNER JOIN [$(ReferencedDBVar)].[dbo].[Products] AS P ON P.[ProductID] = O.[ProductID]
Указанное имя переменной позволяет идентифицировать таблицу, на которую указывает ссылка, и шесть ошибок будут устранены. Далее следует построить и развернуть проект базы данных.
Настройка, построение и развертывание проекта
В обозревателе решений щелкните "БД_заказов" (проект, а не решение).
В меню Проект выберите команду Свойства БД_заказов.
Откроется окно свойств проекта.
Примечание
Можно также щелкнуть правой кнопкой мыши "БД_заказов" в обозревателе решений и выбрать команду Свойства.
Перейдите на вкладку Развертывание.
В списке Действие развертывания щелкните Создать скрипт развертывания (SQL) и развернуть в базу данных.
Нажмите кнопку Правка, чтобы задать целевое подключение.
Задайте данные о подключении к серверу базы данных, на котором требуется развернуть базу данных "БД_заказов".
Важно!
Для успешного завершения пошагового руководства, необходимо развернуть базу данных на том же сервере, на котором развернут проект "БД_товаров" в обязательном предварительном пошаговом руководстве.Чтобы развернуть базу данных на другом сервере, для него необходимо задать переменную.
В Выберите или введите имя базы данных, введите OrdersDB и нажмите кнопку ОК.
Поле Целевое подключение содержит строку подключения, а поле Имя конечной базы данных содержит "БД_заказов".
Остальные параметры принимают значения по умолчанию. Откройте меню Файл, выберите Сохранить выбранные элементы.
Параметры развертывания проекта сохранены.
В меню Построение выберите команду Построить решение.
Будет выполнено построение проекта базы данных. Если оно завершится успешно, в строке состояния отобразится сообщение Построение успешно завершено, и результаты построения будут выведены в окне Выходные данные.
В обозревателе решений щелкните "БД_заказов" (проект, а не решение).
В меню Построение выберите команду Развернуть БД_заказов.
Проект базы данных разворачивается с использованием подключения, заданного в конфигурации построения. В окне Выходные данные и строке состояния отображается сообщение "Построение выполнено успешно".
Следующие действия
Теперь следует поместить проект базы данных в систему управления версиями для предоставления общего доступа команде.
См. также
Основные понятия
Настройка проектов баз данных и выполнение развертывания тестов
Написание и изменение кода базы данных
Построение и развертывание баз данных в тестовой или производственной среде