MSSQLSERVER_137

詳細資料

產品名稱

SQL Server

產品版本

10.50

產品組建編號

 

事件識別碼

137

事件來源

MSSQLSERVER

元件

SQLEngine

符號名稱

P_SCALAR_VAR_NOTFOUND

訊息文字

必須宣告純量變數 "%.*ls"。

說明

當您在 SQL 指令碼中使用某個變數,但卻沒有先宣告該變數時,就會發生這個錯誤。下列範例會針對 SET 和 SELECT 陳述式傳回錯誤 137,因為沒有宣告 @mycol

SET @mycol = 'ContactName';

SELECT @mycol;

導致這個錯誤的其中一個更複雜原因包括使用了在 EXECUTE 陳述式外部宣告的變數。例如,在 SELECT 陳述式中指定的變數 @mycol 是 SELECT 陳述式的本機變數。因此,這個變數就位於 EXECUTE 陳述式外部。

USE AdventureWorks2008R2;

GO

DECLARE @mycol nvarchar(20);

SET @mycol = 'Name';

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

使用者動作

請確認在 SQL 指令碼中使用的任何變數都已經過宣告,然後再用於指令碼的其他位置。

重寫指令碼,讓它不會在 EXECUTE 陳述式中參考在該陳述式外部宣告的變數。例如:

USE AdventureWorks2008R2;

GO

DECLARE @mycol nvarchar(20) ;

SET @mycol = 'Name';

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