- T-SQL
-
Transact-SQL (T-SQL) — расширение языка Microsoft (для Microsoft SQL Server) и
Для того, чтобы сделать язык мощнее, SQL был расширен такими дополнительными возможностями как:
- управляющие операторы
- локальные переменные
- различные дополнительные функции (для обработки строк, дат, математические и др.)
- поддержка аутентификации Microsoft Windows
Содержание
Управляющие операторы
Для управления потоком исполнения в Transact-SQL используются следующие операторы:
BEGIN
иEND
,BREAK
,CONTINUE
,GOTO
,IF
иELSE
,RETURN
,WAITFOR
иWHILE
.Переменные
Локальные переменные
Для объявления локальной переменной заданного типа используется ключевое слово
DECLARE
. При объявлении все переменные инициализируются значениемNULL
. Чтобы присвоить переменной значение, нужно использовать ключевое словоSET
.Следующий скрипт объявляет переменную целого типа, задаёт ей значение и выполняет цикл используя её в качестве счётчика.
DECLARE @Counter INT SET @Counter = 10 WHILE @Counter > 0 BEGIN PRINT 'The count is ' + CONVERT(VARCHAR(10), @Counter) SET @Counter = @Counter - 1 END
Также переменная может быть инициализирована результатом запроса:
DECLARE @UserName NVARCHAR(100) SELECT @UserName = UserName FROM Users
После исполнения данного скрипта значение переменной
@UserName
равно значению соответствующего поля последней выбранной записи. При этом, если запрос не вернёт ни одной записи, значение переменной, в отличие от оператораSET
, не изменится.Глобальные переменные
SQL Server имеет ряд предопределённых глобальных переменных (global variables), которые предназначены для получения информации о состоянии сервера, базы данных или текущего подключения. В отличие от локальных переменных их значение нельзя менять. Название глобальных переменных начинается с двух символов "@".
Примеры глобальных переменных:
- @@ERROR - возвращает номер ошибки последней выполненной команды
- @@ROWCOUNT - возвращает количество строк обработанное последней командой (SELECT, INSERT, DELETE, UPDATE)
- @@SERVERNAME - название сервера
- @@VERSION - версия SQL Server
Табличные переменные
Табличные переменные (англ. table variables) появились в 2000-й версии SQL Server. Предназначены для временного хранения наборов данных для последующей обработки. К табличным переменным можно применять стандартные команды
Например
DECLARE @UserNames TABLE ( LastName VARCHAR(50) NOT NULL, FirstName VARCHAR(50) NOT NULL, BirthDay DATETIME ) INSERT INTO @UserNames (LastName, FirstName, BirthDay) VALUES ('Иванов', 'Иван', '1977-04-27') INSERT INTO @UserNames (LastName, FirstName) VALUES ('Петрович', 'Пётр')
этот фрагмент кода объявляет табличную переменную
@UserNames
и вставляет в неё две записи.Литература
- Майк Гандерлой, Джозеф Джорден, Дейвид Чанц Часть II. Язык программирования Transact-SQL // Освоение Microsoft SQL Server 2005 = Mastering Microsoft SQL Server 2005. — М.: «Диалектика», 2007. — С. 139-280. — ISBN 0-7821-4380-6
Wikimedia Foundation. 2010.