- 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.