Skip to content

Comentarios y Variables

En Transact SQL, la elección del tipo de datos adecuado es fundamental para optimizar el rendimiento, asegurar la integridad de los datos y gestionar eficientemente el almacenamiento. A continuación, se detallan los tipos de datos más comunes, clasificados por su naturaleza.


Los comentarios son clave para hacer tu código más claro y fácil de mantener. En Transact-SQL, tienes dos opciones principales:

  • Comentario de una línea: Usa un doble guion -- al comienzo de la línea.
-- Este es un comentario que explica la siguiente línea de código.
SELECT * FROM Clientes;
  • Comentario de múltiples líneas: Empieza con /* y termina con */ para encerrar un bloque de texto.
/*
Este es un comentario
que abarca
varias líneas.
*/

Una variable es un espacio de almacenamiento temporal que guarda un valor. En Transact-SQL, los nombres de las variables siempre comienzan con el símbolo de arroba (@).

Para declarar una variable, usa la palabra clave DECLARE, seguida del nombre de la variable (@nombre_variable) y su tipo de dato. Puedes opcionalmente asignarle un valor inicial.

Sintaxis:

DECLARE @nombre_variable tipo_dato;
-- O con valor inicial
DECLARE @nombre_variable tipo_dato = valor_inicial;

Ejemplo:

DECLARE @nombre VARCHAR(50) = 'Jaime';

Existen tres métodos principales para asignar un valor a una variable.

  1. Usando SET Es la forma más común y recomendada para asignar un valor a una sola variable.
DECLARE @nombre VARCHAR(100);
SET @nombre = (SELECT nombre FROM Clientes WHERE ID = 1);
  1. Usando SELECT Puedes asignar valores a una o varias variables directamente desde una consulta SELECT.
DECLARE @nombre VARCHAR(100),
@apel1 VARCHAR(100),
@apel2 VARCHAR(100);
SELECT @nombre = nombre,
@apel1 = apellido1,
@apel2 = apellido2
FROM Clientes
WHERE ID = 1;
  1. Usando FETCH (Cursor) El comando FETCH se usa junto con los cursores para procesar filas de una en una. Es útil cuando necesitas iterar sobre el resultado de una consulta.
DECLARE @nombre VARCHAR(100),
@apellido1 VARCHAR(100),
@apellido2 VARCHAR(100);
DECLARE CDATOS CURSOR FOR
SELECT nombre, Apellido1, Apellido2
FROM CLIENTES;
OPEN CDATOS;
FETCH NEXT FROM CDATOS INTO @nombre, @apellido1, @apellido2;
WHILE (@@FETCH_STATUS = 0)
BEGIN
PRINT @nombre;
PRINT @apellido1;
PRINT @apellido2;
FETCH NEXT FROM CDATOS INTO @nombre, @apellido1, @apellido2;
END;
CLOSE CDATOS;
DEALLOCATE CDATOS;