Share via


MSSQLSERVER_137

Data creazione: 17 novembre 2008

Dettagli

Nome prodotto

SQL Server

Versione prodotto

9.0

Numero di build del prodotto

 

ID evento

137

Origine evento

MSSQLSERVER

Componente

SQLEngine

Nome simbolico

P_SCALAR_VAR_NOTFOUND

Testo del messaggio

Dichiarare la variabile scalare "%.*ls".

Spiegazione

Questo errore si verifica quando viene utilizzata una variabile in uno script SQL senza prima dichiararla. Il seguente esempio restituisce l'errore 137 per entrambe le istruzioni SET e SELECT poiché @mycol non è dichiarata.

SET @mycol = 'ContactName';

SELECT @mycol;

L'utilizzo di una variabile dichiarata all'esterno dell'istruzione EXECUTE rappresenta una delle cause più complesse di questo errore. Ad esempio, la variabile @mycol specificata nell'istruzione SELECT è locale rispetto all'istruzione SELECT, ed è pertanto esterna all'istruzione EXECUTE.

USE AdventureWorks;

GO

DECLARE @mycol nvarchar(20);

SET @mycol = 'Name';

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

Azione utente

Verificare che le variabili utilizzate in uno script SQL siano dichiarate prima di utilizzarle in altre posizioni all'interno dello script.

Riscrivere lo script in modo che non faccia riferimento a variabili nell'istruzione EXECUTE dichiarate all'esterno di tale istruzione. Ad esempio:

USE AdventureWorks;

GO

DECLARE @mycol nvarchar(20) ;

SET @mycol = 'Name';

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

Vedere anche

Altre risorse

EXECUTE (Transact-SQL)
SET (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)

Guida in linea e informazioni

Assistenza su SQL Server 2005