Compartir a través de


MSSQLSERVER_137

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLBase de datos SQL en Microsoft Fabric

Detalles

Attribute Valor
Nombre del producto SQL Server
Id. de evento 137
Origen de eventos MSSQLSERVER
Componente SQLEngine
Nombre simbólico P_SCALAR_VAR_NOTFOUND
Texto del mensaje Debe declarar la variable escalar "%.*ls".

Explicación

Este error se produce cuando una variable se utiliza en un script SQL sin declararla primero. En el ejemplo siguiente se devuelve el error 137 para las instrucciones SET y SELECT porque no se declara @mycol .

SET @mycol = 'ContactName';  
  
SELECT @mycol; 

Una de las causas más complicadas de este error incluye el uso de una variable que se declara fuera de la instrucción EXECUTE. Por ejemplo, la variable @mycol especificada en la instrucción SELECT es local para la instrucción SELECT; por lo tanto, está fuera de la instrucción EXECUTE.

USE AdventureWorks2022;  
  
GO  
  
DECLARE @mycol nvarchar(20);  
  
SET @mycol = 'Name';  
  
EXECUTE ('SELECT @mycol FROM Production.Product;'); 

Acción del usuario

Compruebe que cualquier variable que se use en un script SQL se declara antes de utilizarse en otra parte del script.

Vuelva a escribir el script para que no haga referencia a las variables de la instrucción EXECUTE que se declaran fuera de ella. Por ejemplo:

USE AdventureWorks2022;  
  
GO  
  
DECLARE @mycol nvarchar(20) ;  
  
SET @mycol = 'Name';  
  
EXECUTE ('SELECT ' + @mycol + ' FROM Production.Product;') ;

Consulte también

EJECUTAR (Transact-SQL)
Instrucciones SET (Transact-SQL)
DECLARE @local_variable (Transact-SQL)