Partilhar via


MSSQLSERVER_137

Detalhes

Nome do produto

SQL Server

Versão do produto

10.0

Número da compilação do produto

 

ID do evento

137

Origem do evento

MSSQLSERVER

Componente

SQLEngine

Nome simbólico

P_SCALAR_VAR_NOTFOUND

Texto da mensagem

É necessário declarar a variável escalar "%.*ls".

Explicação

Esse erro ocorre quando uma variável é usada em um script SQL sem primeiro declarar a variável. O exemplo a seguir retorna o erro 137 para as instruções SET e SELECT porque @mycol não é declarada.

SET @mycol = 'ContactName';

SELECT @mycol;

Uma das causas mais complexas desse erro inclui o uso de uma variável que é declarada fora da instrução EXECUTE. Por exemplo, a variável @mycol especificada na instrução SELECT é local na instrução SELECT, por isso está fora da instrução EXECUTE.

USE AdventureWorks;

GO

DECLARE @mycol nvarchar(20);

SET @mycol = 'Name';

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

Ação do usuário

Verifique se alguma das variáveis usadas em um script SQL foi declarada antes de ser usada em outro lugar no script.

Reescreva o script de modo que ele não faça referência a variáveis na instrução EXECUTE que estejam declaradas fora dela. Por exemplo:

USE AdventureWorks;

GO

DECLARE @mycol nvarchar(20) ;

SET @mycol = 'Name';

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