Variables SQL: SQL Server declara, establece y selecciona variables
ยฟQuรฉ es una variable en SQL Server?
En MS SQL, las variables son el objeto que actรบa como marcador de posiciรณn para una ubicaciรณn de memoria. La variable contiene un valor de datos รบnico.
Tipos de variables en SQL: local, global
MS SQL tiene dos tipos de variables:
- Variable local
- Variable global.
Sin embargo, el usuario sรณlo puede crear una variable local.
La siguiente figura explica dos tipos de variables disponibles en Servidor MS SQL.

Variable local
- Un usuario declara la variable local.
- De forma predeterminada, una variable local comienza con @.
- Cada alcance de variable local tiene la restricciรณn al lote o procedimiento actual dentro de cualquier sesiรณn determinada.
Variable global
- El sistema mantiene la variable global. Un usuario no puede declararlos.
- La variable global comienza con @@
- Almacena informaciรณn relacionada con la sesiรณn.
Cรณmo DECLARAR una variable en SQL
- Antes de utilizar cualquier variable en un lote o procedimiento, es necesario declarar la variable.
- El comando DECLARAR se utiliza para DECLARAR la variable que actรบa como marcador de posiciรณn para la ubicaciรณn de memoria.
- Sรณlo una vez realizada la declaraciรณn, se puede utilizar una variable en la parte posterior del lote o procedimiento.
Sintaxis TSQL:
DECLARE { @LOCAL_VARIABLE[AS] data_type [ = value ] }
Reglas:
- La inicializaciรณn es algo opcional al declarar.
- De forma predeterminada, DECLARE inicializa la variable en NULL.
- El uso de la palabra clave "AS" es opcional.
- Para declarar mรกs de una variable local, utilice una coma despuรฉs de la primera definiciรณn de variable local y luego defina el siguiente nombre de variable local y tipo de datos.
Ejemplos de declaraciรณn de una variable
Consulta: Con 'AS'
DECLARE @COURSE_ID AS INT;
Consulta: Sin 'AS'
DECLARE @COURSE_NAME VARCHAR (10);
Consulta: DECLARAR dos variables
DECLARE @COURSE_ID AS INT, @COURSE_NAME VARCHAR (10);
Asignar un valor a la variable SQL
Puede asignar un valor a una variable de la siguiente manera three formas:
- Durante la declaraciรณn de variables utilizando la palabra clave DECLARE.
- Usando SET
- Usando SELECCIONAR
Echemos un vistazo a las tres formas en detalle:
Durante la declaraciรณn de variables usando la palabra clave DECLARE
Sintaxis T-SQL:
DECLARE { @Local_Variable [AS] Datatype [ = value ] }
Aquรญ, despuรฉs del tipo de datos podemos usar '=" seguido del valor a asignar
consulta:
DECLARE @COURSE_ID AS INT = 5 PRINT @COURSE_ID
Usando SQL SET VARIABLE
A veces queremos mantener la declaraciรณn y la inicializaciรณn separadas. SET se puede utilizar para asignar valores a la variable, despuรฉs de declarar una variable. A continuaciรณn se muestran las diferentes formas de asignar valores utilizando SET:
Ejemplo: Asignar un valor a una variable usando SET
Sintaxis:
DECLARE @Local_Variable <Data_Type> SET @Local_Variable = <Value>
consulta:
DECLARE @COURSE_ID AS INT SET @COURSE_ID = 5 PRINT @COURSE_ID
Ejemplo: Asigne un valor a mรบltiples variables utilizando SET.
Sintaxis:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable_2 <Data_Type>, SET @Local_Variable_1 = <Value_1> SET @Local_Variable_2 = <Value_2>
Regla: Se puede utilizar una palabra clave SET para asignar un valor solo a una variable.
consulta:
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SET @COURSE_ID = 5 SET @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Ejemplo: Asignar un valor a una variable con un Subconsulta escalar usando SET
Sintaxis:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable_2 <Data_Type>,SET @Local_Variable_1 = (SELECT <Column_1> from <Table_Name> where <Condition_1>)
Reglas:
- Incluya la consulta entre parรฉntesis.
- La consulta debe ser una consulta escalar. Una consulta escalar es una consulta cuyos resultados son solo una fila y una columna. De lo contrario, la consulta generarรก un error.
- Si la consulta devuelve cero filas, entonces la variable se establece en VACรA, es decir, NULL.
Suposiciรณn: Supongamos que tenemos la tabla como 'Guru99' con dos columnas como se muestra a continuaciรณn:
Usaremos la tabla 'Guru99' en los tutoriales posteriores.
Ejemplo 1: Cuando la subconsulta devuelve una fila como resultado.
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 3) PRINT @COURSE_NAME
Ejemplo 2: cuando la subconsulta devuelve cero fila como resultado
DECLARE @COURSE_NAME VARCHAR (10) SET @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
En este caso particular, el valor de la variable es VACรO, es decir, NULL.
Usando SQL SELECCIONAR VARIABLE
Al igual que SET, tambiรฉn podemos usar SELECT para asignar valores a las variables y publicar una variable usando DECLARE. A continuaciรณn se muestran diferentes formas de asignar un valor usando SELECT:
Ejemplo: Asignar un valor a una variable usando SELECT
Sintaxis:
DECLARE @LOCAL_VARIABLE <Data_Type> SELECT @LOCAL_VARIABLE = <Value>
consulta:
DECLARE @COURSE_ID INT SELECT @COURSE_ID = 5 PRINT @COURSE_ID
Ejemplo: Asignar un valor a mรบltiples variables usando SELECT
Sintaxis:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Value_1>, @Local_Variable _2 = <Value_2>
Reglas: A diferencia de SET, SELECT se puede utilizar para asignar un valor. a mรบltiples variables separados por el coma.
DECLARE @COURSE_ID as INT, @COURSE_NAME AS VARCHAR(5) SELECT @COURSE_ID = 5, @COURSE_NAME = 'UNIX' PRINT @COURSE_ID PRINT @COURSE_NAME
Ejemplo: Asignar el valor a una variable con una Subconsulta usando SELECT
Sintaxis:
DECLARE @Local_Variable_1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = (SELECT <Column_1> from <Table_name> where <Condition_1>)
Reglas:
- Adjunte la consulta entre parรฉntesis.
- La consulta debe ser escalar. La consulta escalar es la consulta cuyo resultado es una fila y una columna. De lo contrario, la consulta generarรก un error.
- Si la consulta devuelve cero filas, entonces la variable estรก VACรA, es decir, NULL.
- Reconsiderar nuestra tabla 'Guru99'
Ejemplo 1: Cuando la subconsulta devuelve una fila como resultado.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 1) PRINT @COURSE_NAME
Ejemplo 2: Cuando la subconsulta devuelve cero fila como resultado
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = (select Tutorial_name from Guru99 where Tutorial_ID = 5) PRINT @COURSE_NAME
En este caso particular, la variable estรก VACรA, es decir, NULL.
Ejemplo 3: Asigne un valor a una variable con una instrucciรณn SELECT normal.
Sintaxis:
DECLARE @Local_Variable _1 <Data_Type>, @Local_Variable _2 <Data_Type>,SELECT @Local_Variable _1 = <Column_1> from <Table_name> where <Condition_1>
Reglas:
- A diferencia de SET, si la consulta genera varias filas, el valor de la variable se establece en el valor de la รบltima fila.
- Si la consulta devuelve cero filas, entonces la variable se establece en VACรA, es decir, NULL.
Consulta 1: la consulta devuelve una fila.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 3 PRINT @COURSE_NAME
Consulta 2: la consulta devuelve varias filas.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 PRINT @COURSE_NAME
En este caso especial, el valor de la variable es establecido en el valor de la รบltima fila.
Consulta 3: la consulta devuelve cero filas.
DECLARE @COURSE_NAME VARCHAR (10) SELECT @COURSE_NAME = Tutorial_name from Guru99 where Tutorial_ID = 5 PRINT @COURSE_NAME
En este caso particular, la variable estรก VACรA, es decir, NULL.
Otros ejemplos de variables SQL
Usando variable en la consulta
consulta:
DECLARE @COURSE_ID Int = 1 SELECT * from Guru99 where Tutorial_id = @COURSE_ID
ยกDatos interesantes sobre las variables de SQL Server!
- Se puede mostrar una variable local usando IMPRIMIR y SELECCIONAR COMANDO
- El tipo de datos de tabla no permite el uso de "AS" durante la declaraciรณn.
- SET cumple con los estรกndares ANSI, mientras que SELECT no.
- Tambiรฉn se permite crear una variable local con el nombre @. Podemos declararlo como, por ejemplo:
'DECLARE @@ as VARCHAR (10)'
Resumen
- Las variables son el objeto que actรบa como marcador de posiciรณn.
- Existen dos tipos de Variable: Local y Global
- Podemos asignar la variable de las siguientes tres maneras: Usando 1) DECLARE 2) Usando SET 3) USANDO SELECT














