Курсовая работа: Transact-SQL
END
1.2 Команды программирования Transact - SQL
Некоторые команды Transact-SQLне должны выполнятся вместе с другими командами, поэтому их включение в конструкцию BEGIN…ENDсовместно с другими командами не допускается. К таким командам относятся команды резервного копирования, изменения структуры таблиц, хранимых процедур и им подобные.[1]
IF…ELSE
Часто определённая часть программы должна выполнятся только при некотором условии. Например, изменять строки в таблице имеет смысл только в том случае, если они имеются. Конструкция IF…ELSEпозволяет выполнять указанную команду только при соблюдении логических условий.
В отличие от большинства языков программирования, в конструкции IF…ELSEязыка Transact-SQLне используется ключевое слово THEN. Кроме ТОО, в некоторых языках программирования конструкция IF…ELSEпредусматривает включение множества команд. В Transact-SQLпозволено указание не более одной команды. Если требуется выполнить более одной команды, необходимо воспользоваться конструкцией BEGIN…END.
CASE…END
Эта конструкция часто используется для замены множества одиночных или вложенных конструкций IF…ELSE. Конструкция CASE…ENDвозвращает результат, который можно использовать в качестве переменной в других выражениях. Приэтомонарассматриваетсякакфункция.
CASE input_ expression
WHEN {when_ expression | Boolean_ expression}
THEN result_ expression
[…n]
[ELSE else_ result_ expression]
END
Конструкцию CASE…ENDможно также использовать непосредственно в запросе.
COALESCE
Эта конструкция возвращает первое нулевое значение. Еёсинтаксистаков:
COALESCE (expression […n])
Внутри скобок в этой конструкции через запятую перечисляется множество значений. Конструкция COALESCEможет быть представлена в виде конструкции CASE…END.
WHILE…BREAK & CONTINUE
С помощью это конструкции в Transact-SQLорганизуется циклы, причём это единственный тип циклов, поддерживаемый Transact-SQL. Во многих языках программирования реализовано два, а то три типа циклов. Например, Delphiподдерживает три типа циклов: FOR…TO, WHILE…DOи REPEAT…UNTIL.
Цикл можно принудительно остановить, если в его теле выполнить команду BREAK. Если же нужно начать цикл заново, не дожидаясь выполнения всех команд в теле цикла, необходимо выполнить команду CONTINUE. После этой команды цикл переходит к проверке логического условия.
Все объекты SQLServer 7.0 имеют свои собственные имена, с помощью которых можно ссылаться на них. Имена объектов называются идентификаторами. Любой объект базы данных должен быть уникально идентифицирован. TransactSQLналагает ряд ограничений на именование объектов:
1. Первый символ имени объекта должен соответствовать стандарту UnicodeStandard 2.0 и быть одним из символов латинского или национального алфавита либо символом «_», то есть не допускается использование в качестве первого символа имени объекта цифр, символов «!», «№», «*» и т.д. Кроме того, для обозначения временных объектов сервер разрешает использование символов «@» (временные переменные или параметры) и «#» (временные таблицы или хранимые процедуры). Временные объекты существуют только в течение сеанса или транзакции, а затем уничтожаются. Для обозначения глобальных временных объектов, к которым могут обращаться все пользователи, Transact-SQLпозволяет использовать символы «##». Для обозначения глобальных временных переменных вначале идентификатора указываются символы «@@». Некоторые функции и переменные SQLServer 7.0 начинаются с символов «@@».
1 Остальная часть идентификатора может включать любые символы, определённые стандартом UnicodeStandard 2.0, символы национальных алфавитов, десятичные цифры, символы «@», «#» и «_».
2 При выборе имени следует убедиться, что оно не является зарезервированным словом (как, например, BEGINили KILL) и что ещё не существует объекта с таким именем. Transact-SQLне различает регистра, в котором набрано имя, и поэтому считает одинаковыми имена объектов, выбранные в разных регистрах.
3 Запрещается использование внутри имени пробелов, круглых скобок и специальных символов «~», «!», «%», «^», «&», «-», «{», «}», «`», «.», «\», и «’».
4 Длина имени объекта не должна превышать 128 символов. Исключение составляют имена временных таблиц, длина имени которых не должна превышать 116 символов.
Для обхода некоторых ограничений можно заключить имена объектов в двойные кавычки или квадратные скобки. В этом случае разрешается использование в имени объекта пробелов, специальных символов, а также употребление зарезервированных слов в качестве идентификаторов. Стандартные имена также могут быть записаны с использованием ограничителей. Идентификаторы, заключённые в двойные кавычки или квадратные скобки, называются ограниченными идентификаторами (Delimitedidentifiers).[2]