Transact-SQL (T-SQL) is an extension of SQL used by Microsoft SQL products and services, including Microsoft SQL Server, and by SAP Adaptive Server Enterprise (SAP ASE). Microsoft states that tools and applications communicating with a SQL Server database do so by sending T-SQL commands. SAP describes its implementation as an enhanced version of the relational database language.
In January 1988, Microsoft and Ashton-Tate announced Microsoft SQL Server, based on a relational database management system licensed from Sybase. Sybase Adaptive Server Enterprise was later renamed SAP Adaptive Server Enterprise. Microsoft and SAP publish separate Transact-SQL documentation for their respective database systems.
The features described in this section refer to Microsoft's implementation of Transact-SQL.
Local variables begin with an at sign (@) and are declared using DECLARE. A newly declared variable has the value NULL. Values can be assigned using SET or SELECT, although Microsoft recommends SET for variable assignment.
Control-flow constructs include BEGIN...END, IF...ELSE, WHILE, BREAK, CONTINUE, RETURN, GOTO, WAITFOR, THROW, and TRY...CATCH.
Stored procedures can accept input parameters, return values through output parameters, contain statements that operate on a database, and return a status value to their caller.
The TRY...CATCH construct transfers control to a CATCH block when certain execution errors occur inside its associated TRY block.
Transact-SQL extends the DELETE statement with an additional FROM clause, allowing rows to be identified using joined table sources. Its UPDATE statement also accepts a FROM clause containing table, view, or derived-table sources used to determine which rows are updated.
The BULK INSERT statement imports data from a file into a table or view. Depending on the Microsoft database product, the source can be a file accessible to the server or a file in Azure Storage.