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


Пошаговое руководство. Изменение объектов базы данных

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

  • Откройте решение, содержащее проект базы данных.

  • Добавьте столбец в таблицу. Будем считать, что пользователь желает отслеживать год ввода товаров. Для выполнения этого шага вы добавляете столбец DateAdded в таблицу Product в схеме Production.

  • Добавьте таблицу Purchasing.ShipperRating для отслеживания оценки клиентами качества обслуживания поставщиками, обрабатывающими их заказы. Также добавьте отношения внешнего ключа и индексы.

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

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

Открытие решения MyAdvWorks

  1. В меню Файл выберите команду Открыть и затем щелкните Проект/решение.

    Откроется диалоговое окно Открыть проект.

  2. Откройте папку MyAdvWorks и дважды щелкните MyAdvWorks.sln.

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

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

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

  4. Разверните узел проекта базы данных в представлении схемы, если он еще не развернут.

    Далее вы измените определение таблицы для добавления в нее столбца.

Добавление столбца DateAdded в таблицу Product

  1. В представлении схемы разверните папку Production и папку Tables, щелкните правой кнопкой мыши таблицу Product и нажмите кнопку Открыть.

    Можно также открыть таблицу Product двойным щелчком.

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

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

    CREATE TABLE [Production].[Product] (
        [ProductID]             INT              IDENTITY (1, 1) NOT NULL,
        [Name]                  [dbo].[Name]     NOT NULL,
        [ProductNumber]         NVARCHAR (25)    NOT NULL,
        [MakeFlag]              [dbo].[Flag]     NOT NULL,
        [FinishedGoodsFlag]     [dbo].[Flag]     NOT NULL,
        [Color]                 NVARCHAR (15)    NULL,
        [SafetyStockLevel]      SMALLINT         NOT NULL,
        [ReorderPoint]          SMALLINT         NOT NULL,
        [StandardCost]          MONEY            NOT NULL,
        [ListPrice]             MONEY            NOT NULL,
        [Size]                  NVARCHAR (5)     NULL,
        [SizeUnitMeasureCode]   NCHAR (3)        NULL,
        [WeightUnitMeasureCode] NCHAR (3)        NULL,
        [Weight]                DECIMAL (8, 2)   NULL,
        [DaysToManufacture]     INT              NOT NULL,
        [ProductLine]           NCHAR (2)        NULL,
        [Class]                 NCHAR (2)        NULL,
        [Style]                 NCHAR (2)        NULL,
        [ProductSubcategoryID]  INT              NULL,
        [ProductModelID]        INT              NULL,
        [DateAdded]             DATETIME         NOT NULL,
        [SellStartDate]         DATETIME         NOT NULL,
        [SellEndDate]           DATETIME         NULL,
        [DiscontinuedDate]      DATETIME         NULL,
        [rowguid]               UNIQUEIDENTIFIER ROWGUIDCOL NOT NULL,
        [ModifiedDate]          DATETIME         NOT NULL
    );
    
    
    GO
    EXECUTE sp_addextendedproperty @name = N'MS_Description', @value = N'Products sold or used in the manfacturing of sold products.', @level0type = N'SCHEMA', @level0name = N'Production', @level1type = N'TABLE', @level1name = N'Product';
    

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

  3. В меню Файл выберите команду Сохранить Product.table.sql, чтобы сохранить изменения.

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

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

Добавление таблицы с именем ShipperRating

  1. В представлении схемы разверните папку Purchasing и щелкните папку Tables.

  2. В меню Проект выберите команду Добавить новый элемент. Можно также щелкнуть правой кнопкой мыши папку «Таблицы», выбрать команду Добавить и щелкнуть Таблица.

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

  3. В списке шаблонов выберите Таблица.

  4. В поле Имя введите имя ShipperRating и нажмите кнопку Добавить.

    Таблица ShipperRating будет добавлена в проект базы данных и в систему управления версиями. Откроется редактор Transact-SQL, чтобы можно было отредактировать определение этой таблицы.

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

    -- =============================================
    -- Create table definition for ShipperRating 
    --Contains a rating of a shipper by
    --a customer, on a particular date.
    --Ratings are from 1-100.
    -- =============================================
    CREATE TABLE [Purchasing].[ShipperRating]
    (
    [ShipperID] [int] NOT NULL,
    [CustomerID] [nchar] (5) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL,
    [RatingDate] [datetime] NULL,
    [Rating] [int] NOT NULL
    ) ON [PRIMARY]
    
  6. В меню Файл выберите команду Сохранить ShipperRating.table.sql, чтобы сохранить изменения.

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

Добавление внешнего ключа в таблицу ShipperRating

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

    Появится диалоговое окно Добавление нового элемента с выделенным в нем шаблоном Внешний ключ.

  2. В поле Имя введите FK_ShipperRating_Shippers и нажмите кнопку Добавить.

    Внешний ключ FK_ShipperRating_Shippers будет добавлен в таблицу ShipperRating в проекте. Откроется редактор Transact-SQL, чтобы можно было отредактировать определения внешних ключей.

    Примечание

    Определение внешнего ключа по умолчанию ссылается на столбец_1 в имяТаблицы, а не на реальную таблицу и столбец.Поэтому значок FK_ShipperRating_Shippers в представлении схемы отображает индикатор ошибки (красный кружок с белым символом «x»).В окне «Список ошибок» также выводится ошибка, указывающая, что определение объекта базы данных является недопустимым.Подобный результат является ожидаемым.Для файла в обозревателе решений, содержащего определение объекта, не отображается значок ошибки.

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

    ALTER TABLE [Purchasing].[ShipperRating]
    ADD CONSTRAINT [FK_ShipperRating_Shippers] 
    FOREIGN KEY ([ShipperID])
    REFERENCES [Purchasing].[ShipMethod] ([ShipMethodID])
    
  4. В меню Файл выберите команду Сохранить ShipperRating.FK_ShipperRating_Shippers.fkey.sql, чтобы сохранить изменения. Значок ошибки заменится обычным значком определения внешнего ключа, поскольку определение теперь допустимо.

    На последнем шаге вы добавите в таблицу ShipperRating индекс.

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

  1. В представлении схемы щелкните папку «Индексы».

  2. В меню Проект выберите команду Добавить новый элемент. Можно также щелкнуть правой кнопкой мыши папку «Индексы», выбрать команду Добавить и щелкнуть Индекс.

  3. В списке Шаблоны щелкните элемент Индекс, если он еще не выделен.

  4. В поле Имя введите имя ShipperRatingDate и нажмите кнопку Добавить.

    Индекс ShipperRatingDate будет добавлен в таблицу ShipperRating в проекте. Откроется редактор Transact-SQL, чтобы можно было отредактировать определение этого индекса.

    Примечание

    Определение индекса по умолчанию ссылается на столбец_1, а не на реальный столбец.Поэтому значок ShipperRatingDate в обозревателе решений отображает индикатор ошибки (красный кружок с белым символом «x»).В окне Список ошибок также выводится ошибка, указывающая, что определение объекта базы данных является недопустимым.Подобный результат является ожидаемым.

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

    -- =============================================
    -- Create index on RatingDate column in 
    --the ShipperRating table.
    -- =============================================
    CREATE INDEX [ShipperRatingDate]
    ON [Purchasing].[ShipperRating]
    (RatingDate)
    

    В меню Файл выберите команду Сохранить ShipperRating.ShipperRatingDate.index.sql, чтобы сохранить изменения. Значок ошибки заменится обычным значком определения индекса, поскольку определение теперь допустимо.

Возврат изменений в систему управления версиями

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

    Открывается окно Ожидающие изменения, в котором можно просмотреть все добавленные или измененные файлы.

    Примечание

    Шаги в этой процедуре описываются, как будто используется Team Foundation (подсистема контроля версий).Если Team Foundation (подсистема контроля версий) не используется, вместо этого следует применять процедуры для системы управления версиями.

  2. Добавьте комментарий к возврату (необязательно).

  3. Щелкните Вернуть.

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

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

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

См. также

Задачи

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

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

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

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

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

Рефакторинг кода и данных базы данных