¡Hola a todos! Bienvenidos a esta primera entrada del curso de SQL y T-SQL.
Si trabajáis en desarrollo, tarde o temprano os vais a topar con una base de datos. Y para interactuar con ellas, el estándar indiscutible es SQL.
Mientras que SQL es un estándar definido por organismos como ANSI e ISO, T-SQLamplía este estándar añadiendo características de programación procedimental.
SQL vs T-SQL: ¿Cuál es la diferencia?
Es común confundir ambos términos, pero es importante entender la distinción:
- SQL (Standard SQL): Es un lenguaje declarativo diseñado para consultar y manipular datos. Nos dice qué queremos obtener, pero no necesariamente cómo debe hacerlo el motor internamente.
- T-SQL (Transact-SQL): Es una implementación específica de Microsoft. Además de todas las funciones del SQL estándar, incluye estructuras de control de flujo, manejo de errores, variables y procedimientos almacenados.

Básicamente, T-SQL toma todo lo bueno del SQL estándar y le añade funcionalidades para permitirnos programar lógica compleja directamente en la base de datos.
Características principales de T-SQL
Lo que hace potente a T-SQL es que convierte a SQL en un lenguaje de programación completo. Esto nos permite realizar operaciones que van mucho más allá de un simple SELECT o INSERT.
T-SQL incorpora estructuras lógicas que encontramos en lenguajes como C# o Java. Podemos usar condicionales y bucles:
IF...ELSE: Para toma de decisiones.WHILE: Para bucles y repeticiones.BEGIN...END: Para definir bloques de código.
-- Ejemplo simple de lógica en T-SQL
DECLARE @Cantidad int = 10;
IF @Cantidad > 5
BEGIN
PRINT 'Hay más de 5 elementos';
END
ELSE
BEGIN
PRINT 'Hay pocos elementos';
END
Podemos declarar variables, asignarles valores y utilizarlas a lo largo de nuestro script o procedimiento almacenado. Esto es fundamental para guardar resultados intermedios o configurar parámetros dinámicos.
DECLARE @NombreCliente NVARCHAR(50);
SET @NombreCliente = 'Luis Llamas';
SELECT * FROM Clientes WHERE Nombre = @NombreCliente;
T-SQL nos permite encapsular código en objetos reutilizables dentro de la base de datos.
- Stored Procedures: Bloques de código que pueden ejecutar lógica compleja, transacciones y modificaciones de datos.
- User Defined Functions (UDF): Funciones que devuelven un valor o una tabla, ideales para cálculos repetitivos.
Una de las partes más críticas en bases de datos es asegurar la integridad de los datos. T-SQL ofrece herramientas robustas para esto:
TRY...CATCH: Para capturar y gestionar errores de ejecución de forma controlada.TRANSACTION: Para asegurar que un conjunto de operaciones se realicen todas o ninguna (atomicidad).
BEGIN TRY
BEGIN TRANSACTION;
-- Intentamos actualizar un registro
UPDATE Inventario SET Stock = Stock - 1 WHERE ProductoID = 10;
-- Si todo va bien, confirmamos
COMMIT TRANSACTION;
END TRY
BEGIN CATCH
-- Si algo falla, deshacemos los cambios
ROLLBACK TRANSACTION;
PRINT 'Ocurrió un error: ' + ERROR_MESSAGE();
END CATCH
El estándar ANSI y la portabilidad
Microsoft se esfuerza por mantener T-SQL compatible con el estándar ANSI SQL-92 y versiones posteriores. Sin embargo, T-SQL incluye muchas funciones propietarias (como TOP, ISNULL, o funciones de fecha específicas como GETDATE()).
Dicho de forma sencilla:
- Todo comando SQL válido debería funcionar en T-SQL
- Pero no todo comando T-SQL funcionará en otras bases de datos (como MySQL o PostgreSQL)
Cuando escribimos en T-SQL, a menudo tenemos que decidir entre:
- Escribir código puramente estándar (más portable, pero a veces más limitado).
- Aprovechar la potencia específica de T-SQL (mejor rendimiento y funcionalidades, pero menos portable).
En este curso, nos centraremos en exprimir T-SQL al máximo, ya que estamos trabajando sobre SQL Server.

¿Por qué aprender T-SQL?
Si vas a trabajar con SQL Server, T-SQL es imprescindible. Es el lenguaje principal que utilizamos para interactuar con Microsoft SQL Server y Azure SQL Database.
Pero, ¿y si no planeas usar Microsoft para siempre? ¿Sigue valiendo la pena este curso? La respuesta es un sí.
Base SQL: El 90% de la sintaxis que usarás es SQL Estándar. Lo que aprendas aquí te servirá inmediatamente en MySQL, SQLite o MariaDB.
Conceptos Transferibles: T-SQL es un “dialecto” procedimental. Otros motores tienen los suyos propios (PostgreSQL tiene PL/pgSQL y Oracle tiene PL/SQL). Pero, aunque cambie alguna palabra clave, los conceptos son idénticos.
Si dominas T-SQL, pasar mañana a PostgreSQL u otro, te costará muy poco, porque ya entenderás la lógica que hay detrás de las bases de datos avanzadas.
