MSSQLSERVER_137
Detalles
Nombre del producto |
SQL Server |
Versión del producto |
10.0 |
Número de compilación del producto |
|
Identificador de evento |
137 |
Origen del evento |
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 ha declarado @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 en la instrucción SELECT; por tanto, está fuera de la instrucción EXECUTE.
USE AdventureWorks;
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 AdventureWorks;
GO
DECLARE @mycol nvarchar(20) ;
SET @mycol = 'Name';
EXECUTE ('SELECT ' + @mycol + ' FROM Production.Product';) ;
Vea también