• 09/06/2017
  • 2 minutos para leer
    • c
    • r
    • M
    • i
    • M
    • +7

Se aplica a: SQL Server (todas las versiones compatibles) Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics

Configura una variable local con el valor de una expresión.

Para asignar variables, se recomienda utilizar SET @variable_local en lugar de SELECT @variable_local.

Convenciones de sintaxis de Transact-SQL

Sintaxis

SELECT { @local_variable { = | += | -= | *= | /= | %= | &= | ^= | |= } expression } 

Nota

Para ver la sintaxis de Transact-SQL para SQL Server 2014 y anteriores, consulte la documentación de versiones anteriores.

Argumentos

@local_variable
Es una variable declarada a la que se va a asignar un valor.

{= | += | -= | *= | /= | %= | &= | ^= |= }
Asigna el valor de la derecha a la variable de la izquierda.

Operador de asignación compuesto:

operador acción
= Asigna la expresión que sigue, a la variable.
+= Agrega y asigna
-= Restar y asignar
*= Multiplicar y asignar
/= Dividir y asignar
%= Módulo y asignar
&= Y a nivel de bits y asignar
^= XOR a nivel de bits y asignar
|= O a nivel de bits y asignar

expresión
Es cualquier expresión válida. Esto incluye una subconsulta escalar.

Observaciones

SELECT @local_variable se utiliza normalmente para devolver un solo valor en la variable. Sin embargo, cuando la expresión es el nombre de una columna, puede devolver varios valores. Si la sentencia SELECT devuelve más de un valor, se asigna a la variable el último valor devuelto.

Si la sentencia SELECT no devuelve ninguna fila, la variable conserva su valor actual. Si la expresión es una subconsulta escalar que no devuelve ningún valor, la variable se establece en NULL.

Una sentencia SELECT puede inicializar múltiples variables locales.

Nota

Una sentencia SELECT que contenga una asignación de variable no puede utilizarse para realizar también operaciones típicas de recuperación de conjuntos de resultados.

Ejemplos

A. Utilizar SELECT @variable_local para devolver un único valor

En el siguiente ejemplo, a la variable @var1 se le asigna Generic Name como valor. La consulta contra la tabla Store no devuelve ninguna fila porque el valor especificado para CustomerID no existe en la tabla. La variable conserva el valor Generic Name.

Aquí está el conjunto de resultados.

Company Name ------------------------------ Generic Name 

B. Utilizar SELECT @variable_local para devolver null

En el siguiente ejemplo, se utiliza una subconsulta para asignar un valor a @var1. Como el valor solicitado para CustomerID no existe, la subconsulta no devuelve ningún valor y la variable se establece en NULL.

Aquí está el conjunto de resultados.

Company Name ---------------------------- NULL 

Ver también

DECLARE @local_variable (Transact-SQL)
Expresiones (Transact-SQL)
Operadores compuestos (Transact-SQL)
SELECT (Transact-SQL)

admin

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

lg