Инструкция CREATE TABLE (Transact-SQL)

Страницы работы

Фрагмент текста работы

Default – задает значение по умолчанию для входных параметров.

OUTPUT – ключевое слово,  которое определяет,  что данный параметр является выходным. Параметр, описанный этим словом возвращает информацию при  выполнении хранимой процедуры (выполнении оператора execute).

{RECOMPILE | ENCRYPTION | RECOMPILE, ENCRYPTION}

RECOMPILE – ключевое слово, которое заставляет  SQL Server каждый раз при вызове данной хранимой процедуры на исполнение заново ее перекомпилировать и строить новый план исполнения.

ENCRYPTION – ключевое слово, которое обеспечивает кодирование текста хранимой процедуры и он становится недоступным другим пользователям системы.

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

FOR REPLICATION – ключевое слово, которое определяет, что данная процедура будет использована при репликации. Существует специальный режим репликации, которые позволяет не пересылать данные по сети, а послать процедуру, которая в результате своего выполнения сгенерирует новые данные.  Этот режим не может быть использован совместно с опцией RECOMPILE (перекомпиляции).

AS – ключевое слово, после которого идет собственно текст процедуры.

Создание триггера

CREATE TRIGGER trigger_name
ON { table | view }
[ WITH ENCRYPTION ]
{
 { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
 [ WITH APPEND ]
 [ NOT FOR REPLICATION ]
 AS
 [ { IF UPDATE ( column )
 [ { AND | OR } UPDATE ( column ) ]
 [ ...n ]
 | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
 { comparison_operator } column_bitmask [ ...n ]
 } ]
 sql_statement [...n ]
 }
}

Описание аргументов:

INSTEAD OF – определяет триггер, который запускается вместо операции его вызвавшей. Этот тип триггера имитирует  работу стандартных триггеров  типа Befor (предшествующих событию.)

 Триггер типа INSTEAD OF  для операций INSERT, UPDATE  или DELETE  может быть задан как для таблицы так и для представления. Возможно  даже определить  триггеры для представления, которое само было создано на базе представления, и при этом у каждого будут свои собственные триггеры.

 INSTEAD OF  триггеры не поддерживают обновление представлений с  WITH CHECK OPTION.

Для триггеров типа  INSTEAD OF  операция DELETE  не поддерживается для таблиц, которые связаны ссылочной целостностью с установленным  свойством каскадирования при удалении  (cascade action ON DELETE). Аналогично,  для операций  UPDATE  не поддерживается создание триггеров данного типа  для таблиц, где задана каскадная операция обновления  ( cascade action ON UPDATE).

Понятие представления (View) и операции создания представлений

Для описания  внешних моделей в реляционной модели могут использоваться представление. Представление (View) – это SQL-запрос на выборку, который пользователь воспринимает как некоторое виртуальное отношение.

Создание представления:

CREATEVIEW <имя представления>

[ (<список столбцов>)]  AS <SQL-запрос>

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

Оператор изменения структуры таблицы

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 ] }
}

Удаление объектов

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

Drop table <имя таблицы>

Операция удаления таблицы не должна нарушать целостность базы данных, поэтому удалить таблицу, на которую имеются ссылки других таблиц невозможно!!!

Похожие материалы

Информация о работе