Управляющие конструкции T-SQL.

BEGIN...END

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

Некоторые команды Transact-SQL не должны выполняться вместе с другими командами, поэтому их включение в конструкцию BEGIN...END совместно с другими командами не допускается. К таким командам относятся команды резервного копирования, изменения структуры таблиц, хранимых процедур и им подобные.

IF...ELSE

Часто определенная часть программы должна выполняться только при определенном условии. Синтаксис этой конструкции следующий:

IF Boolean_expression

{sql_statement | statement_block}

[ELSE

{sql_statement | statement_block}]

Аргумент Boolean__expression определяет логическое условие.

CASE...END

Эта конструкция часто используется для замены множества одиночных или вложенных конструкций IF...ELSE. Конструкция CASE...END возвращает результат, ко­торый можно использовать в качестве переменной в других выражениях. Синтаксис конструкции CASE...END следующий:

CASE input_expression

WHEN { when_expression | Boolean_expression }

THEN result_expression

[...n]

[ ELSE else_result_expression ]

END

Аргумент input_expression определяет входное значение. Аргументwhen_expression определяет один из вариантов значений аргументаinput_expression. Если аргументы when_expression и input_expression совпадают, то конструкция CASE...END возвращает значение result_expression. Можно указать несколько строк WHEN...THEN, которые будут содержать все возможные варианты величины input_expression. Если все же значение входного параметра не найдено ни в одной строке WHEN...THEN, то тогда будет возвращено значение, указанное после ключевого слова ELSE.

 

 

Процесс проектирования таблиц в реляционной базе данных. Определение идентификационной колонки.

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

1) Для хранения каких данных предназначена создаваемая таблица?

2) Какие колонки могут содержать пустые значения?

3) На какие колонки будут наложены проверочные ограничения, для каких колонок будут определены значения по умолчанию?

4) Какие колонки будут определены как первичный и внешний ключи?

Проектируя таблицу, необходимо решить, каким образом будет обеспечиваться целостность данных в ней. Для этого следует определить ограничения на значения колонок (constraints). SQL Server позволяет управлять значениями колонок при помощи следующих механизмов:

1. Определение первичного ключа (Primary Key);

2. Определение внешнего ключа (Foreign Key);

3. Создание уникальных колонок (Unique);

4. Наложение проверочных ограничений на значения колонок (Check);

5. Определение значений по умолчанию (Defaults);

6. Определение возможности принимать неопределенные значения (NULL).

Определение идентификационной колонки (Identity)

При проектировании таблицы часто возникает потребность в колонке, которая будет содержать последовательность числовых значений. Как правило, это колонка, которая используется для хранения идентификационных номеров объектов. В подобной ситуации можно поручить заполнение колонки непосредственно SQL Server. Для этого при создании таблицы для колонки необходимо определить свойство Identity. Дополнительно потребуется задать начальное значение и величину приращения.

Тем не менее, SQL Server предоставляет возможность определить колонку, которая будет содержать глобально уникальные значения. Тип данных колонки должен быть uniqueidentifier.