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


Пошаговое руководство. Создание и развертывание новой базы данных с управлением версиями

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

Этот раздел не предназначен для демонстрации порядка развертывания в производственной и опытной производственной средах. Для развертывания в средах этих типов обычно используется утилита VSDBCMD.EXE или развертывание вручную с использованием скрипта развертывания. Дополнительные сведения см. в следующих разделах.

Ниже перечислены базовые шаги данного пошагового руководства.

  • Создайте проект базы данных.

  • Создайте таблицы базы данных.

  • Создайте индексы, ключи и ограничения для этих таблиц.

  • Создайте две хранимых процедуры.

  • Настройте свойства проекта базы данных.

  • Выполните построение проекта базы данных.

  • Разверните проект базы данных.

  • Поместите проект базы данных в систему управления версиями.

Обязательные компоненты

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

Создание проекта базы данных

  1. В меню Файл последовательно выберите команды Создать и Проект.

    Отобразится диалоговое окно Новый проект.

  2. В области Установленные шаблоны разверните узел База данных и щелкните SQL Server.

    Примечание

    Если вы используете Visual Studio Professional, то вместо области Установленные шаблоны последовательно раскройте узлы База данных и SQL Server и щелкните Дополнительно.

  3. В списке шаблонов выберите Проект базы данных SQL Server 2008.

  4. В поле Имя введите OrdersDB.

  5. Установите флажок Создать каталог для решения.

  6. Примите значения по умолчанию для Местоположение, Имя решения и Добавить в систему управления версиями и нажмите кнопку ОК.

    Примечание

    На этом этапе можно добавить решение в систему управления версиями.В этом пошаговом руководстве добавление решения в систему управления версиями выполняется в завершающей процедуре.

    Новый проект базы данных OrdersDB появится в обозревателе решений.

  7. В меню Вид выберите команду Представление схемы базы данных.

    Появится представление схемы, если оно еще не отображалось.

    Далее необходимо добавить схему к проекту базы данных.

Добавление схемы Sales к проекту базы данных

  1. В представлении схемы откройте узел OrdersDB, а затем щелкните узел Schemas.

  2. В меню Проект выберите команду Добавить новый элемент.

    Появляется диалоговое окно Добавление нового элемента.

    Примечание

    Можно также щелкнуть правой кнопкой мыши проект OrdersDB в представлении схемы, выбрать команду Добавить и щелкнуть Схема.

  3. В области Шаблоны щелкните Схема.

    Примечание

    Для быстрого и простого поиска шаблона таблицы, в списке Категории выберите Таблицы и представления.

  4. В поле Имя введите Sales в качестве имени новой схемы.

  5. Нажмите кнопку Добавить, чтобы добавить схему в проект базы данных.

    В обозревателе решений отображается новый файл для схемы проекта базы данных. В представлении схемы отображается новый объект схемы. Открывается редактор Transact-SQL, в котором отображается определение новой схемы.

    Далее необходимо добавить в проект базы данных таблицы.

Добавление в проект базы данных таблицы Customer.

  1. В Представлении схемы разверните узел Sales, щелкните правой кнопкой мыши узел Таблицы, выберите Добавить, а затем Таблица.

  2. В поле Имя введите Customer в качестве имени новой таблицы.

  3. Нажмите кнопку Добавить, чтобы добавить таблицу в проект базы данных.

    В обозревателе решений отображается новый файл для таблицы проекта базы данных. В представлении схемы отображается новый объект таблицы. Открывается редактор Transact-SQL, в котором отображается определение новой таблицы.

  4. В редакторе Transact-SQL измените определение таблицы следующим образом:

    CREATE TABLE [Sales].[Customer] (
        [CustomerID] INT IDENTITY (1, 1) NOT NULL,
        [CustomerName] NVARCHAR (40) NOT NULL,
        [YTDOrders] INT NOT NULL,
        [YTDSales] INT NOT NULL
    );
    
  5. В меню Файл выберите Сохранить Sales.Customer.table.sql.

  6. В представлении схемы разверните узел Sales.Customer.

  7. В таблице Sales.Customer разверните узел Columns.

    Отобразятся четыре столбца, определенных в редакторе Transact-SQL.

    Далее вы добавите первичный ключ для таблицы Customer.

Добавление индекса в таблицу Customer

  1. В представлении схемы щелкните правой кнопкой мыши пункт Sales.Customer и выберите последовательно пункты Добавить и Индекс.

    Появляется диалоговое окно Добавление нового элемента.

  2. В Шаблоны щелкните Индекс.

  3. В поле Имя введите IX_CustomerCustomerName в качестве имени нового индекса.

  4. Нажмите кнопку Добавить, чтобы добавить индекс в таблицу Categories.

    В Обозревателе решений отображается новый файл индекса в проекте базы данных. В представлении схемы отображается новый объект индекса. Открывается редактор Transact-SQL, в котором отображается определение нового индекса.

    Примечание

    В представлении схемы отображается значок индекса с красным кружком, содержащим белый знак «x», указывающий, что определение по умолчанию содержит ошибку.Такое поведение предсказуемо, поскольку определение по умолчанию ссылается на несуществующий столбец «column_1».

  5. В редакторе Transact-SQL отредактируйте определение индекса следующим образом:

    CREATE INDEX [IX_CustomerCustomerName]
        ON [Sales].[Customer]
    (CustomerName)
    
  6. В меню Файл выберите команду Сохранить Sales.Customer.IX_CustomerCustomerName.index.sql.

    Индикатор ошибки исчезает из значка, то есть определение индекса теперь допустимо.

    Далее вы добавите первичный ключ для таблицы Customer.

Добавление первичного ключа для таблицы Customer

  1. В представлении схемы щелкните правой кнопкой мыши пункт Sales.Customer и выберите последовательно пункты Добавить и Первичный ключ.

    Появляется диалоговое окно Добавление нового элемента.

  2. В Шаблоны щелкните Первичный ключ.

  3. В поле Имя введите имя PK_CustomerCustomerID в качестве имени нового первичного ключа.

  4. Нажмите кнопку Добавить, чтобы добавить первичный ключ для таблицы Customer.

    В обозревателе решений отображается новый файл первичного ключа в проекте базы данных. В представлении схемы отображается новый объект первичного ключа. Открывается редактор Transact-SQL, в котором отображается определение нового ключа.

    Примечание

    Значок первичного ключа отображается с красным кружком, содержащим белый знак "x", указывающий, что определение по умолчанию содержит ошибку.Такое поведение предсказуемо, поскольку определение по умолчанию ссылается на несуществующий столбец «column_1».

  5. В редакторе Transact-SQL отредактируйте определение первичного ключа следующим образом:

    ALTER TABLE [Sales].[Customer]
    ADD CONSTRAINT [PK_CustomerCustomerID]
    PRIMARY KEY (CustomerID)
    
  6. В меню Файл выберите команду Сохранить Sales.Customer.PK_CustomerCustomerID.pkey.sql.

    Индикатор ошибки исчезает из значка, то есть определение первичного ключа теперь допустимо.

    Далее вы добавите таблицу Orders.

Добавление таблицы Orders

  1. Щелкните OrdersDB в представлении схемы.

  2. В меню Проект выберите команду Добавить новый элемент.

    Появляется диалоговое окно Добавление нового элемента.

    Примечание

    Можно также щелкнуть правой кнопкой мыши проект OrdersDB в представлении схемы, выбрать команду Добавить и щелкнуть Таблица.

  3. В Шаблоны щелкните Таблица.

  4. В поле Имя введите Orders в качестве имени новой таблицы.

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

    В обозревателе решений отображается новый файл для таблицы проекта базы данных. В представлении схемы отображается новый объект таблицы. Открывается редактор Transact-SQL, в котором отображается определение новой таблицы.

  6. В редакторе Transact-SQL измените определение таблицы следующим образом:

    CREATE TABLE [Sales].[Orders] (
        [CustomerID] INT NOT NULL,
        [OrderID] INT IDENTITY (1, 1) NOT NULL,
        [OrderDate] DATETIME NOT NULL,
        [FilledDate] DATETIME NULL,
        [Status] CHAR (1) NOT NULL,
        [Amount] INT NOT NULL
    );
    
  7. В меню Файл выберите Сохранить Sales.Orders.table.sql.

  8. В представлении схемы разверните узел Sales.Orders.

  9. В таблице Sales.Orders разверните узел Columns.

    Отобразятся столбцы, определенные в редакторе Transact-SQL.

    Далее вы добавите в таблицу Products индекс.

Добавление первичного ключа для таблицы Orders

  1. В представлении схемы щелкните правой кнопкой мыши пункт Sales.Orders и выберите последовательно пункты Добавить и Первичный ключ.

    Появляется диалоговое окно Добавление нового элемента.

  2. В «Шаблоны» щелкните Первичный ключ.

  3. В поле Имя введите имя PK_OrdersOrderID в качестве имени нового первичного ключа.

  4. Нажмите кнопку Добавить, чтобы добавить первичный ключ для таблицы Orders.

    В обозревателе решений отображается файл нового первичного ключа для проекта базы данных. В представлении схемы отображается новый объект первичного ключа. Открывается редактор Transact-SQL, в котором отображается определение нового первичного ключа.

    Примечание

    Значок первичного ключа отображается с красным кружком, содержащим белый знак "x", указывающий, что определение по умолчанию содержит ошибку.Такое поведение предсказуемо, поскольку определение по умолчанию ссылается на несуществующий столбец «column_1».

  5. В редакторе Transact-SQL отредактируйте определение первичного ключа следующим образом:

    ALTER TABLE [Sales].[Orders]
        ADD CONSTRAINT [PK_Orders_OrderID] PRIMARY KEY CLUSTERED ([OrderID] ASC) WITH (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON, PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF, STATISTICS_NORECOMPUTE = OFF);
    
  6. В меню Файл выберите команду Сохранить Sales.Orders.PK_Orders_OrderID.pkey.sql.

    Индикатор ошибки исчезает из значка, то есть определение первичного ключа теперь допустимо.

    Далее вы добавите внешний ключ для таблицы Orders.

Добавление внешнего ключа для таблиц Orders и Customer

  1. В представлении схемы щелкните правой кнопкой мыши пункт Sales.Orders и выберите последовательно пункты Добавить и Внешний ключ.

    Появляется диалоговое окно Добавление нового элемента.

  2. В Шаблоны щелкните Внешний ключ.

  3. В поле Имя введите имя FK_OrdersCustomer в качестве имени нового внешнего ключа.

  4. Нажмите кнопку Добавить, чтобы добавить внешний ключ для таблицы Orders.

    В обозревателе решений отображается файл для нового внешнего ключа в проекте базы данных. В Schema View отображается объект нового внешнего ключа. Открывается редактор Transact-SQL, в котором отображается определение нового внешнего ключа.

    Примечание

    Значок внешнего ключа отображается с красным кружком, содержащим белый знак «x», указывающий, что определение по умолчанию содержит ошибку.Такое поведение предсказуемо, поскольку определение по умолчанию ссылается на несуществующий столбец «column_1».

  5. В редакторе Transact-SQL измените определение внешнего ключа следующим образом:

    ALTER TABLE [Sales].[Orders]
        ADD CONSTRAINT [FK_Orders_Customer_CustID] 
        FOREIGN KEY ([CustomerID]) REFERENCES [Sales].[Customer] ([CustomerID]) 
        ON DELETE NO ACTION ON UPDATE NO ACTION;
    
  6. В меню Файл выберите команду Сохранить Sales.Orders.FK_OrdersCustomer.fkey.sql.

    Из значка исчезнет индикатор ошибки, то есть определение внешнего ключа теперь допустимо.

    Далее вы добавите проверочное ограничение для таблицы Products.

Добавление проверочного ограничения для таблицы Orders

  1. В представлении схемы щелкните правой кнопкой мыши пункт Sales.Orders и выберите последовательно пункты Добавить и Проверочное ограничение.

    Появляется диалоговое окно Добавление нового элемента.

  2. В Шаблоны щелкните Проверочное ограничение.

  3. В поле Имя введите CK_OrderStatus в качестве имени нового проверочного ограничения.

  4. Нажмите кнопку Добавить, чтобы добавить ограничение для таблицы Products.

    В обозревателе решений отображается файл для нового ограничения в проекте базы данных. В представлении схемы отображается объект нового ограничения. Открывается редактор Transact-SQL, в котором отображается определение нового ограничения.

    Примечание

    Значок ограничения отображается с красным кружком, содержащим белый знак «x», указывающий, что определение по умолчанию содержит ошибку.Такое поведение предсказуемо, поскольку определение по умолчанию ссылается на несуществующий столбец «column_1».

  5. В редакторе Transact-SQL измените определение ограничения следующим образом:

    ALTER TABLE [Sales].[Orders]
    ADD CONSTRAINT [CK_OrderStatus] 
    CHECK  ([Status] IN ('O','X','F','B'))
    
  6. В меню Файл выберите команду Сохранить Sales.Orders.CK_OrderStatus.chkconst.sql.

    Из значка исчезнет индикатор ошибки, то есть определение ограничения теперь допустимо.

    Далее вы добавите в проект две хранимых процедуры.

Создание хранимой процедуры, которая добавляет клиента

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

  2. В поле Имя введите uspNewCustomer в качестве имени новой хранимой процедуры.

  3. Нажмите Добавить для добавления хранимой процедуры в проект базы данных.

    В Solution Explorer отображается файл для новой хранимой процедуры в проекте базы данных. В представлении схемы отображается новый объект хранимой процедуры. Открывается редактор Transact-SQL, в котором отображается определение новой хранимой процедуры.

  4. В редакторе Transact-SQL измените определение хранимой процедуры следующим образом:

    CREATE PROCEDURE [Sales].[uspNewCustomer]
    @CustomerName NVARCHAR (40)
    AS
    BEGIN
    INSERT INTO [Sales].[Customer] (CustomerName) VALUES (@CustomerName);
    SELECT SCOPE_IDENTITY()
    END
    
  5. В меню Файл выберите Сохранить Sales.uspNewCustomer.proc.sql.

  6. В представлении схемы разверните последовательно узлы Программируемость и Хранимые процедуры.

    Появится процедура, которую вы определили в редакторе Transact-SQL.

    Затем вы добавите вторую хранимую процедуру, которая используется для размещения заказа для клиента.

Создание хранимой процедуры для размещения заказа для клиента

  1. Щелкните OrdersDB в представлении схемы.

  2. В меню Проект выберите команду Добавить новый элемент.

    Появляется диалоговое окно Добавление нового элемента.

    Примечание

    Можно также щелкнуть правой кнопкой мыши проект OrdersDB в представлении схемы, выбрать команду Добавить и щелкнуть Хранимая процедура.

  3. В списке Категории разверните Проект базы данных и щелкните Программируемость.

  4. В списке Шаблоны щелкните Хранимая процедура.

  5. В поле Имя введите uspPlaceNewOrder в качестве имени новой хранимой процедуры.

  6. Нажмите Добавить для добавления хранимой процедуры в проект базы данных.

    В Solution Explorer отображается файл для новой хранимой процедуры в проекте базы данных. В представлении схемы отображается новый объект хранимой процедуры. Открывается редактор Transact-SQL, в котором отображается определение новой хранимой процедуры.

  7. В редакторе Transact-SQL измените определение хранимой процедуры следующим образом:

    CREATE PROCEDURE [Sales].[uspPlaceNewOrder]
    @CustomerID INT, @Amount INT, @OrderDate DATETIME, @Status CHAR (1)='O'
    AS
    BEGIN
    DECLARE @RC INT
    BEGIN TRANSACTION
    INSERT INTO [Sales].[Orders] (CustomerID, OrderDate, FilledDate, Status, Amount) 
         VALUES (@CustomerID, @OrderDate, NULL, @Status, @Amount)
    SELECT @RC = SCOPE_IDENTITY();
    UPDATE [Sales].[Customer]
       SET
       YTDOrders = YTDOrders + @Amount
        WHERE [CustomerID] = @CustomerID
    COMMIT TRANSACTION
    RETURN @RC
    END
    
  8. В меню Файл выберите Сохранить Sales.uspPlaceNewOrder.proc.sql.

  9. В представлении схемы разверните последовательно узлы Программируемость и Хранимые процедуры.

    Появится процедура, которую вы определили в редакторе Transact-SQL.

    Далее вы настроите параметры проекта перед его построением и развертыванием.

Настройка параметров для развертывания проекта

  1. В обозревателе решений щелкните OrdersDB (проект, а не решение).

  2. В меню Проект выберите команду Свойства OrdersDB.

    Откроется окно свойств проекта.

    Примечание

    Можно также щелкнуть правой кнопкой мыши OrdersDB в обозревателе решений и выбрать команду Свойства.

  3. Перейдите на вкладку Развертывание.

  4. В списке Действие развертывания щелкните Создать скрипт развертывания (SQL) и развернуть в базе данных.

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

  6. Задайте данные о подключении к серверу базы данных, на котором требуется развернуть базу данных "БД_заказов".

  7. В Выберите или введите имя базы данных, введите OrdersDB и нажмите кнопку ОК.

    В Конечное подключение отображается строка подключения. Обратите внимание, что Имя конечной базы данных имеет значение OrdersDB.

  8. Примите значения по умолчанию для остальных параметров.

  9. В меню Файл выберите команду Сохранить выбранные элементы.

    Параметры построения проекта сохранены.

    Теперь вы построите проект базы данных.

Построение проекта базы данных

  • В меню Построение выберите Построить решение.

    Будет выполнено построение проекта базы данных. Если оно завершится успешно, в строке состояния отобразится сообщение Построение успешно завершено и результаты построения будут выведены в окне Выходные данные.

    Напоследок вы развернете проект базы данных.

Развертывание проекта базы данных на сервере базы данных

  1. В обозревателе решений щелкните OrdersDB (проект, а не решение).

  2. В меню Построение выберите Развернуть OrdersDB.

    Проект базы данных разворачивается с использованием подключения, заданного в конфигурации построения. В окне Выходные данные и строке состояния отображается сообщение "Построение выполнено успешно".

Помещение проекта базы данных в систему управления версиями

  1. В обозревателе решений щелкните OrdersDB (решение).

  2. В меню Файл выберите Система управления версиями и щелкните Добавить решение в систему управления версиями.

    На этом этапе вы взаимодействуете с установленным программным обеспечением системы управления версиями. В данном пошаговом руководстве описаны шаги добавления проекта в Team Foundation Server. Если нужно использовать другую систему управления версиями, замените описанные шаги эквивалентными им. Если используется Team Foundation Server, появляется диалоговое окно Подключение к Team Foundation Server.

  3. В Подключиться к Team Foundation Server щелкните сервер, на котором находится командный проект, куда нужно добавить решение.

    Примечание

    Если командного проекта, в который можно добавить проект базы данных, не имеется, см. раздел Планирование и отслеживание проектов.

  4. В Проекты группы щелкните командный проект, который нужно добавить в проект базы данных, и нажмите кнопку ОК.

    Откроется диалоговое окно Добавление решения OrdersDB в систему управления версиями.

  5. Нажмите кнопку ОК, чтобы принять значения по умолчанию.

    Проект базы данных и содержащиеся в нем файлы помещены под контроль систем управления версиями. Первоначально они извлечены. Чтобы другие участники рабочей группы получили к ним доступ, их нужно вернуть.

  6. В меню Вид выберите команду Другие окна и щелкните Ожидающие изменения.

    Появится окно Ожидающие изменения.

  7. В поле "Примечание" введите Создание исходного проекта базы данных.

  8. В окне Ожидающие изменения на панели инструментов щелкните Вернуть.

    В диалоговом окне Ход возврата отобразится проект базы данных и содержащиеся в нем файлы, возвращаемые в систему управления версиями. Значки в обозревателе решений обновляются, показывая, что файлы возвращены в систему управления версиями.

Следующие действия

Из дополнительных пошаговых руководств узнаете, как работать с имеющимися развернутыми базами данных.

См. также

Основные понятия

Настройка проектов баз данных и выполнение развертывания тестов

Написание и изменение кода базы данных

Построение и развертывание баз данных в тестовой или производственной среде

Журнал изменений

Дата

Журнал

Причина

Июль 2010

Разъяснено назначение пошагового руководства и добавлены ссылки на разделы, в которых рассматриваются другие сценарии развертывания.

Обратная связь от клиента.