Transact-SQL
Transact-SQL (T-SQL) es una extensión al SQL de Microsoft y Sybase. SQL, que frecuentemente se dice ser un Lenguaje de Búsquedas Estructurado (por sus siglas en inglés), es un lenguaje de cómputo estandarizado, desarrollado originalmente por IBM para realizar búsquedas, alterar y definir bases de datos relacionales utilizando sentencias declarativas. T-SQL expande el estándar de SQL para incluir programación procedimental, variables locales, varias funciones de soporte para procesamiento de strings, procesamiento de fechas, matemáticas, etc, y cambios a las sentencias DELETE y UPDATE. Estas características adicionales hacen de T-SQL un lenguaje que cumple con las características de un autómata de Turing.
TRANSACT-SQL es un lenguaje muy potente que nos permite definir casi cualquier tarea que queramos efectuar sobre la base de datos; incluye características propias de cualquier lenguaje de programación, características que nos permiten definir la lógica necesaria para el tratamiento de la información:
• Tipos de datos. • Definición de variables. • Estructuras de control de flujo. • Gestión de excepciones. • Funciones predefinidas.
Sin embargo no nos permite:
• Crear interfaces de usuario. • Crear aplicaciones ejecutables, sino elementos que en algún momento llegarán al servidor de datos y serán ejecutados.
Debido a estas restricciones se emplea generalmente para crear procedimientos almacenados, triggers y funciones de usuario.
Puede ser utilizado como cualquier SQL como lenguaje embebido en aplicaciones desarrolladas en otros lenguajes de programación como Visual Basic, C, Java, etc. Y por supuesto los lenguajes incluidos en la plataforma .NET.
También lo podremos ejecutar directamente de manera interactiva, por ejemplo desde el editor de consultas de SSMS (SQL Server Management Studio).
Referencias
Variables
O Transact-SQL fornece as seguintes instruções[1] para declarar e definir variáveis locais: DECLARE
, SET
e SELECT
.
DECLARE @var1 NVARCHAR(30);
SET @var1 = 'Some Name';
SELECT @var1 = Name
FROM Sales.Store
WHERE CustomerID = 100;
TRY CATCH
A partir do SQL Server 2005,[2] a Microsoft introduziu a lógica TRY CATCH
adicional para oferecer suporte ao comportamento do tipo de exceção. Esse comportamento permite que os desenvolvedores simplifiquem seu código e deixem de fora a verificação @@ERROR
após cada instrução de execução SQL.
-- begin transaction
BEGIN TRAN;
BEGIN TRY
-- execute each statement
INSERT INTO MYTABLE(NAME) VALUES ('ABC');
INSERT INTO MYTABLE(NAME) VALUES ('123');
-- commit the transaction
COMMIT TRAN;
END TRY
BEGIN CATCH
-- roll back the transaction because of error
ROLLBACK TRAN;
END CATCH;
- «How to get time from rowversion T-SQL». Python.Engineering (en inglés). 13 de diciembre de 2022.
- "T-SQL Improvements in SQL Server 2012", Jonathan Allen on Mar 19, 2012, infoq.com