Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Изменение структуры таблицы при помощи Transact-SQL



Более сложный способ изменения структуры таблицы предлагает Transact-SQL, в котором для этого предусмотрена специальная команда:

ALTER TABLE table

{[ALTER COLUMN

column_name {new_data_type [(precision [, scale])]

[NULL | NOT NULL]

| {ADD | DROP} ROWGUIDCOL}]

|ADD

{[<column_definition> ]

column_name AS computed_column_expression}[,...n]

[WITH CHECK | WITH NOCHECK] ADD

{<table_contraint>}[...n]

|DROP

[CONSTRAINT] contraint_name | COLUMN column }[....n]

{CHECK | NOCHECK} CONSTRAINT {ALL | constraint_name[,...n]}

{ENABLE | DISABLE} TRIGGER {ALL | trigger_name[....n]}}

Рассмотрим синтаксис данной команды, подробно объяснив назначение всех используемых ключевых слов. С помощью команды ALTER TABLE можно изменить определение уже существующих колонок, удалить любую из них, а также доба­вить в таблицу новые колонки:

Изменение определения колонки.

Данная операция осуществляется с использованием ключевого слова ALTER COLUMN, после которого помещается имя изменяемой колонки (column_name). Вы можете изменить тип данных колонки (new_data_type), размерность (precision) и точность (scale). При желании можно указать, разрешено ли колонке содержать значения NULL. В этом случае обязательно нужно указать тип данных для колонки, даже если вы не хотите его изменять (просто укажите существующий тип данных). Если вы определяете для колонки свойство NOT NULL, необходимо предварительно позаботиться о том, чтобы на момент изменения колонка не содержала ни одного значения NULL.

Добавление в таблицу новой колонки.

Для определения новой колонки необходимо использовать ключевое слово ADD. За ним следует описание колонки, которое имеет такой же формат, как и при создании колонки с помощью команды CREATE TABLE. Здесь же можно наложить на таблицу но­вые ограничения на значения колонок. Определив ключевое слово WITH CHECK, вы предписываете системе при добавлении новых ограничений на значения колонок FOREIGN KEY или CHECK осуществлять проверку данных в таблице на соответствие этим ограничениям. По умолчанию данная про­верка проводится для всех вновь создаваемых ограничений. Когда выпол­нение подобной проверки не требуется, необходимо использовать ключе­вое слово WITH NOCHECK.

Удаление колонок из таблицы.

В случае необходимости можно удалить из таблицы некоторые колонки. Для этого используйте ключевое слово DROP. Вы можете удалить как конкретную колонку (ключевое слово COLUMN), так и определенное ограничение на значение колонки. Однако необходимо помнить, что нельзя удалять следующие колонки:

– колонки, задействованные в индексе;

– колонки, полученные в результате репликации;

– колонки, для которых определены любые ограничения на значения;

– колонки, для которых определены значения по умолчанию;

– колонки, связанные с правилом.

Управление ограничениями на значения колонок.

Иногда бывает необхо­димо отключить ограничения на значения колонок FOREIGN KEY или CHECK. Отключение конкретного ограничения (NOCHECK CONSTRAINT) означает, что при вводе новых строк данные не будут проверяться на соответствие это­му ограничению. Когда снова потребуется сделать ограничение активным, используйте ключевое слово CHECK CONSTRAINT. При необходимости вы мо­жете управлять всеми ограничениями сразу. Для этого необходимо использовать ключевое слово ALL.

Управление триггерами.

При помощи данной команды можно управлять состоянием триггеров, определенных для данной таблицы. Ключевое слово DISABLE TRIGER, отключает триггер. При этом в процессе изменения данных в таблице те действия, которые определены в триггере как реакция системы на эти изменения, не производятся, хотя триггер продолжает существовать. Чтобы активизировать триггер, необходимо использовать команду с ключевым словом ENABLE TRIGGER. Если требуется управлять сразу всеми триггерами, используйте ключевое слово ALL.

Удаление таблиц.

Для удаления таблиц средствами Transact SQL используется команда DROP TABLE. Перед удалением необходимо убедиться, что удаляемая таблица не имеет взаимосвязи с другими таблицами.





Дата публикования: 2014-11-28; Прочитано: 340 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...