Добавил:
rushevamar@mail.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_Laboratornyi_774_praktikum.doc
Скачиваний:
29
Добавлен:
17.06.2021
Размер:
921.09 Кб
Скачать

Раздел IV. Изменение структуры таблицы.

Синтаксис команды изменения структуры таблицы (см. [1], стр. 970):

ALTER TABLE table { [ ALTER COLUMN column_name     { new_data_type [ ( precision [ , scale ] ) ]         [ COLLATE < collation_name > ]         [ NULL | NOT NULL ]         | {ADD | DROP } ROWGUIDCOL }     ]     | ADD { [ < column_definition > ] |  column_name AS computed_column_expression } [ ,...n ]     | [ WITH CHECK | WITH NOCHECK ] ADD  { < table_constraint > } [ ,...n ]     | DROP { [ CONSTRAINT ] constraint_name | COLUMN column } [ ,...n ]     | { CHECK | NOCHECK } CONSTRAINT { ALL | constraint_name [ ,...n ] }     | { ENABLE | DISABLE } TRIGGER { ALL | trigger_name [ ,...n ] } }

< column_definition > ::=     { column_name data_type }     [ [ DEFAULT constant_expression ] [ WITH VALUES ]     | [ IDENTITY [ (seed , increment ) [ NOT FOR REPLICATION ] ] ]         ]     [ ROWGUIDCOL ]     [ COLLATE < collation_name > ]     [ < column_constraint > ] [ ...n ]

< column_constraint > ::=     [ CONSTRAINT constraint_name ]     { [ NULL | NOT NULL ]         | [ { PRIMARY KEY | UNIQUE }             [ CLUSTERED | NONCLUSTERED ]             [ WITH FILLFACTOR = fillfactor ]             [ ON { filegroup | DEFAULT } ]             ]         | [ [ FOREIGN KEY ]             REFERENCES ref_table [ ( ref_column ) ]             [ ON DELETE { CASCADE | NO ACTION } ]             [ ON UPDATE { CASCADE | NO ACTION } ]             [ NOT FOR REPLICATION ]             ]         | CHECK [ NOT FOR REPLICATION ]             ( logical_expression )     }

< table_constraint > ::=     [ CONSTRAINT constraint_name ]     { [ { PRIMARY KEY | UNIQUE }         [ CLUSTERED | NONCLUSTERED ]         { ( column [ ,...n ] ) }         [ WITH FILLFACTOR = fillfactor ]         [ ON {filegroup | DEFAULT } ]         ]         |    FOREIGN KEY             [ ( column [ ,...n ] ) ]             REFERENCES ref_table [ ( ref_column [ ,...n ] ) ]             [ ON DELETE { CASCADE | NO ACTION } ]             [ ON UPDATE { CASCADE | NO ACTION } ]             [ NOT FOR REPLICATION ]         | DEFAULT constant_expression             [ FOR column ] [ WITH VALUES ]         |    CHECK [ NOT FOR REPLICATION ]             ( search_conditions )     }

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

/* Добавление новых полей ГОСТ и Размер в таблицу Товар */

ALTER TABLE Товар ADD ГОСТ VARCHAR(20) NULL

ALTER TABLE Товар ADD Размер INT NULL

GO

/* Изменение типа данных поля Размер в таблице Товар с INT на TINYINT */

ALTER TABLE Товар ALTER COLUMN Размер TINYINT NULL

GO

/* Установка проверочного ограничения для поля Размер в таблице Товар */

ALTER TABLE Товар ADD CONSTRAINT CK_Товар_Размер

CHECK (Размер BETWEEN 36 AND 46)

GO

/* Удаление столбца ГОСТ из таблицы Товар */

ALTER TABLE Товар DROP COLUMN ГОСТ

GO

/* Удаление столбца Размер из таблицы Товар (сначала удаляется проверочное

ограничение) */

ALTER TABLE Товар DROP CONSTRAINT CK_Товар_Размер

ALTER TABLE Товар DROP COLUMN Размер

GO

/* Удаление ограничения внешнего ключа FK_Товар_Валюта из таблицы Товар */

ALTER TABLE Товар DROP CONSTRAINT FK_Товар_Валюта

/* Добавление ограничения внешнего ключа FK_Товар_Валюта в таблицу Товар */

ALTER TABLE Товар ADD CONSTRAINT FK_Товар_Валюта FOREIGN KEY

(КодВалюты) REFERENCES Валюта ON UPDATE CASCADE

GO