Transact-SQL

Summary

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

editar
  •   Datos: Q1411245

Variables

editar

Transact-SQL proporciona las siguientes instrucciones[1]​ para declarar y definir variables locales: DECLARE, SET e SELECT.

DECLARE @var1 NVARCHAR(30);
SET @var1 = 'Some Name';
SELECT @var1 = Name
  FROM Sales.Store
  WHERE CustomerID = 100;

TRY CATCH

editar

A partir de SQL Server 2005[1]​, Microsoft introdujo la lógica adicional TRY CATCH para ofrecer soporte a un comportamiento similar al manejo de excepciones. Esto permite que los desarrolladores simplifiquen su código y eviten tener que verificar @@ERROR después de cada instrucción SQL ejecutada.

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

//Baison<

  1. a b «T-SQL Improvements in SQL Server 2012». InfoQ (en inglés). Consultado el 16 de abril de 2025.