Las variables se suelen utilizar en un proceso por lotes o procedimiento como contadores para WHILE, LOOP o un bloque IF…ELSE.
Las variables sólo se pueden utilizar en expresiones y no en lugar de nombres de objeto o palabras clave. Para formar instrucciones SQL dinámicas, utilice EXECUTE.
El alcance de una variable local es el lote en el que está declarada.
Se puede hacer referencia como origen a una variable de cursor que actualmente tiene asignado un cursor en una instrucción:
-
CLOSE.
-
DEALLOCATE.
-
FETCH.
-
OPEN.
-
DELETE o UPDATE por posición.
-
SET CURSOR variable (en el lado derecho).
En todas estas instrucciones, SQL Server genera un error si la variable de cursor a la que se hace referencia existe pero actualmente no tiene asignado un cursor. Si una variable de cursor a la que se hace referencia no existe, SQL Server genera el mismo error que genera para una variable no declarada de otro tipo.
Una variable de cursor:
-
Puede ser el destino de un tipo de cursor u otra variable de cursor. Para obtener más información, vea SET @local_variable (Transact-SQL).
-
Se puede hacer referencia a la variable de cursor como el destino de un parámetro de cursor de salida en una instrucción EXECUTE si la variable de cursor no tiene actualmente un cursor asignado.
-
Se debe considerar como un puntero al cursor. Para obtener más información sobre variables de cursor, vea Cursores de Transact-SQL.