Открыть сервис

Transact-SQL

Transact-SQL (сокращённо T-SQL) — это процедурное расширение языка структурированных запросов SQL (Structured Query Language), разработанное корпорацией Microsoft и используемое в системах управления базами данных (СУБД) Microsoft SQL Server и Azure SQL Database. T-SQL добавляет к стандартному SQL возможности для написания сложной логики обработки данных, включая объявление переменных, управляющие конструкции (условные операторы, циклы), обработку ошибок и работу с транзакциями. Язык является основным средством взаимодействия с реляционными базами данных в экосистеме Microsoft.

История

Разработка Transact-SQL началась в середине 1980-х годов, когда Microsoft совместно с Sybase создавала первую версию SQL Server для OS/2. В основе лежал язык Sybase SQL, который был расширен и адаптирован для платформы Microsoft. После разрыва партнёрства в 1990-х годах Microsoft продолжила самостоятельное развитие SQL Server, и T-SQL стал его родным языком.

Первая версия Microsoft SQL Server (4.2) вышла в 1993 году и уже поддерживала базовые возможности T-SQL. С выходом SQL Server 7.0 (1998) язык получил значительные улучшения, включая поддержку курсоров, хранимых процедур и триггеров. В SQL Server 2000 была добавлена поддержка пользовательских функций. Версия SQL Server 2005 привнесла в T-SQL блоки обработки ошибок TRY...CATCH, оконные функции и обобщённые табличные выражения (CTE). Дальнейшие версии, вплоть до SQL Server 2022, продолжали расширять язык новыми функциями, такими как SEQUENCE, STRING_AGG, функциями работы с JSON и улучшенной поддержкой графовых данных.

Архитектура и синтаксис

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

Основные элементы

Отличия от стандартного SQL

Хотя T-SQL следует стандарту ANSI SQL (ISO/IEC 9075), он содержит множество расширений и диалектных особенностей. Основные отличия:

Типы данных

Transact-SQL поддерживает широкий спектр типов данных, разделённых на несколько категорий.

Числовые типы

Символьные и строковые типы

Типы даты и времени

Двоичные типы

Прочие типы

Объекты базы данных на T-SQL

Transact-SQL позволяет создавать и управлять различными объектами базы данных, которые инкапсулируют логику и код.

Хранимые процедуры

Хранимая процедура — это скомпилированный набор инструкций T-SQL, хранящийся на сервере. Процедуры могут принимать входные и выходные параметры, возвращать результаты запросов и модифицировать данные. Они используются для инкапсуляции бизнес-логики, повышения производительности (за счёт кэширования плана выполнения) и обеспечения безопасности.

Триггеры

Триггер — это специальный тип хранимой процедуры, который автоматически выполняется при наступлении определённого события в базе данных. Различают DML-триггеры (срабатывают на INSERT, UPDATE, DELETE для таблиц или представлений) и DDL-триггеры (срабатывают на события изменения схемы, такие как CREATE TABLE, ALTER PROCEDURE). Триггеры используются для поддержки целостности данных, аудита и реализации сложных бизнес-правил.

Пользовательские функции

Пользовательские функции (UDF) возвращают одно скалярное значение или таблицу. Скалярные функции могут использоваться в выражениях и запросах. Табличные функции возвращают набор строк и могут быть встроенными (inline) или многооператорными (multi-statement). Функции не могут изменять состояние базы данных (не должны иметь побочных эффектов).

Представления

Представление (view) — это виртуальная таблица, основанная на результате запроса. Оно не хранит данные физически, а динамически извлекает их из базовых таблиц. Представления используются для упрощения сложных запросов, обеспечения безопасности (ограничение доступа к определённым столбцам или строкам) и обеспечения обратной совместимости.

Применение

Transact-SQL является основным инструментом для работы с базами данных Microsoft SQL Server и Azure SQL Database. Он применяется в следующих областях:

Инструменты разработки

Для написания и выполнения кода Transact-SQL используются следующие основные инструменты:

Критика и ограничения

Несмотря на широкое распространение, Transact-SQL имеет ряд недостатков:

Источники

  1. Microsoft Docs. Transact-SQL (T-SQL) Reference. Microsoft Corporation.
  2. Ben-Gan, I. (2016). T-SQL Fundamentals. Microsoft Press.
  3. Ben-Gan, I., Machanic, A., Sarka, D., & Viescas, J. (2015). T-SQL Querying. Microsoft Press.
  4. Стандарт ISO/IEC 9075:2016 (SQL:2016). International Organization for Standardization.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →