Пошаговое руководство. Изменение объектов базы данных
В этом пошаговом руководстве редактор Transact-SQL используется для изменения определений нескольких объектов базы данных в проекте базы данных. Этот процесс состоит из следующих шагов.
Откройте решение, содержащее проект базы данных.
Добавьте столбец в таблицу. Будем считать, что пользователь желает отслеживать год ввода товаров. Для выполнения этого шага вы добавляете столбец DateAdded в таблицу Product в схеме Production.
Добавьте таблицу Purchasing.ShipperRating для отслеживания оценки клиентами качества обслуживания поставщиками, обрабатывающими их заказы. Также добавьте отношения внешнего ключа и индексы.
Обязательные компоненты
В этом пошаговом руководстве предполагается, что вы выполнили Пошаговое руководство. Помещение имеющейся схемы базы данных под контроль системы управления версиями. В результате чего у вас имеется решение, содержащее проект базы данных с именем MyAdvWorks.
Открытие решения MyAdvWorks
В меню Файл выберите команду Открыть и затем щелкните Проект/решение.
Откроется диалоговое окно Открыть проект.
Откройте папку MyAdvWorks и дважды щелкните MyAdvWorks.sln.
Откроется решение MyAdvWorks и отобразится в обозревателе решений.
В меню Вид выберите команду Представление схемы базы данных.
Появится представление схемы, если оно еще не отображалось. в нем отобразятся все объекты, определенные в проекте базы данных.
Разверните узел проекта базы данных в представлении схемы, если он еще не развернут.
Далее вы измените определение таблицы для добавления в нее столбца.
Добавление столбца DateAdded в таблицу Product
В представлении схемы разверните папку Production и папку Tables, щелкните правой кнопкой мыши таблицу Product и нажмите кнопку Открыть.
Можно также открыть таблицу Product двойным щелчком.
Откроется редактор Transact-SQL, в котором отобразится определение таблицы Product.
В редакторе 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';
При изменении определения объекта вы извлекаете файл, содержащий определение, из системы управления версиями.
В меню Файл выберите команду Сохранить Product.table.sql, чтобы сохранить изменения.
По умолчанию файл автоматически извлекается из системы управления версиями. После изменения настроек системы управления версиями вам может быть предложено, в зависимости от настроек системы управления версиями, извлечь файл.
Далее вы добавите в проект базы данных таблицу с именем ShipperRating.
Добавление таблицы с именем ShipperRating
В представлении схемы разверните папку Purchasing и щелкните папку Tables.
В меню Проект выберите команду Добавить новый элемент. Можно также щелкнуть правой кнопкой мыши папку «Таблицы», выбрать команду Добавить и щелкнуть Таблица.
Откроется диалоговое окно Добавление нового элемента.
В списке шаблонов выберите Таблица.
В поле Имя введите имя ShipperRating и нажмите кнопку Добавить.
Таблица ShipperRating будет добавлена в проект базы данных и в систему управления версиями. Откроется редактор Transact-SQL, чтобы можно было отредактировать определение этой таблицы.
В редакторе 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]
В меню Файл выберите команду Сохранить ShipperRating.table.sql, чтобы сохранить изменения.
Далее вы добавите в таблицу ShipperRating внешний ключ.
Добавление внешнего ключа в таблицу ShipperRating
В представлении схемы щелкните правой кнопкой мыши таблицу ShipperRating, выберите команду Добавить и щелкните Внешний ключ.
Появится диалоговое окно Добавление нового элемента с выделенным в нем шаблоном Внешний ключ.
В поле Имя введите FK_ShipperRating_Shippers и нажмите кнопку Добавить.
Внешний ключ FK_ShipperRating_Shippers будет добавлен в таблицу ShipperRating в проекте. Откроется редактор Transact-SQL, чтобы можно было отредактировать определения внешних ключей.
Примечание
Определение внешнего ключа по умолчанию ссылается на столбец_1 в имяТаблицы, а не на реальную таблицу и столбец.Поэтому значок FK_ShipperRating_Shippers в представлении схемы отображает индикатор ошибки (красный кружок с белым символом «x»).В окне «Список ошибок» также выводится ошибка, указывающая, что определение объекта базы данных является недопустимым.Подобный результат является ожидаемым.Для файла в обозревателе решений, содержащего определение объекта, не отображается значок ошибки.
В редакторе Transact-SQL измените определение внешнего ключа следующим образом:
ALTER TABLE [Purchasing].[ShipperRating] ADD CONSTRAINT [FK_ShipperRating_Shippers] FOREIGN KEY ([ShipperID]) REFERENCES [Purchasing].[ShipMethod] ([ShipMethodID])
В меню Файл выберите команду Сохранить ShipperRating.FK_ShipperRating_Shippers.fkey.sql, чтобы сохранить изменения. Значок ошибки заменится обычным значком определения внешнего ключа, поскольку определение теперь допустимо.
На последнем шаге вы добавите в таблицу ShipperRating индекс.
Добавление индекса в таблицу ShipperRating
В представлении схемы щелкните папку «Индексы».
В меню Проект выберите команду Добавить новый элемент. Можно также щелкнуть правой кнопкой мыши папку «Индексы», выбрать команду Добавить и щелкнуть Индекс.
В списке Шаблоны щелкните элемент Индекс, если он еще не выделен.
В поле Имя введите имя ShipperRatingDate и нажмите кнопку Добавить.
Индекс ShipperRatingDate будет добавлен в таблицу ShipperRating в проекте. Откроется редактор Transact-SQL, чтобы можно было отредактировать определение этого индекса.
Примечание
Определение индекса по умолчанию ссылается на столбец_1, а не на реальный столбец.Поэтому значок ShipperRatingDate в обозревателе решений отображает индикатор ошибки (красный кружок с белым символом «x»).В окне Список ошибок также выводится ошибка, указывающая, что определение объекта базы данных является недопустимым.Подобный результат является ожидаемым.
В редакторе Transact-SQL отредактируйте определение индекса следующим образом:
-- ============================================= -- Create index on RatingDate column in --the ShipperRating table. -- ============================================= CREATE INDEX [ShipperRatingDate] ON [Purchasing].[ShipperRating] (RatingDate)
В меню Файл выберите команду Сохранить ShipperRating.ShipperRatingDate.index.sql, чтобы сохранить изменения. Значок ошибки заменится обычным значком определения индекса, поскольку определение теперь допустимо.
Возврат изменений в систему управления версиями
В меню Вид выберите команду Другие окна и щелкните Ожидающие изменения.
Открывается окно Ожидающие изменения, в котором можно просмотреть все добавленные или измененные файлы.
Примечание
Шаги в этой процедуре описываются, как будто используется Team Foundation (подсистема контроля версий).Если Team Foundation (подсистема контроля версий) не используется, вместо этого следует применять процедуры для системы управления версиями.
Добавьте комментарий к возврату (необязательно).
Щелкните Вернуть.
Изменения в проекте базы данных возвращены и теперь доступны для других участников рабочей группы.
Следующие действия
После изменения автономного представления базы данных необходимо построить и развернуть эти изменения на сервере базы данных. Порядок построения и развертывания изменений см. в разделе Пошаговое руководство. Развертывание изменений в существующей базе данных, находящейся под контролем системы управления версиями.
См. также
Задачи
Пошаговое руководство. Создание и развертывание новой базы данных с управлением версиями
Основные понятия
Написание и изменение кода базы данных
Построение и развертывание баз данных в изолированной среде разработки