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:

  1. Variable local
  2. 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.

Variables SQL
Tipo de variables en SQL Server

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:

  1. Durante la declaración de variables utilizando la palabra clave DECLARE.
  2. Usando SET
  3. 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

Asignar un valor a la variable SQL

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

VARIABLE DE CONJUNTO SQL

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

VARIABLE DE CONJUNTO SQL

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:

VARIABLE DE CONJUNTO SQL

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

VARIABLE DE CONJUNTO SQL

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.

VARIABLE DE CONJUNTO SQL

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

SELECCIONAR VARIABLE SQL

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

SELECCIONAR VARIABLE SQL

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

SELECCIONAR VARIABLE SQL

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.

SELECCIONAR VARIABLE SQL

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

SELECCIONAR VARIABLE SQL

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.

SELECCIONAR VARIABLE SQL

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.

SELECCIONAR VARIABLE SQL

Otros ejemplos de variables SQL

Usando variable en la consulta

consulta:

DECLARE @COURSE_ID Int = 1
SELECT * from Guru99 where Tutorial_id = @COURSE_ID

Otra variable SQL

¡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)'
    

Resum

  • 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