MSSQLSERVER_137

Detalles

Nombre del producto

SQL Server

Versión del producto

10.50

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 AdventureWorks2008R2;

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 AdventureWorks2008R2;

GO

DECLARE @mycol nvarchar(20) ;

SET @mycol = 'Name';

EXECUTE ('SELECT ' + @mycol + ' FROM Production.Product';) ;