Share via


MSSQLSERVER_137

新增: 2008 年 11 月 17 日

詳細資料

產品名稱

SQL Server

產品版本

9.0

產品組建編號

 

事件識別碼

137

事件來源

MSSQLSERVER

元件

SQLEngine

符號名稱

P_SCALAR_VAR_NOTFOUND

訊息文字

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

說明

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

SET @mycol = 'ContactName';

SELECT @mycol;

發生這項錯誤其中一個更複雜的原因包括使用了在 EXECUTE 陳述式外部宣告的變數。例如,在 SELECT 陳述式中指定的變數 @mycol 是 SELECT 陳述式的區域變數,因此它位於 EXECUTE 陳述式外部。

USE AdventureWorks;

GO

DECLARE @mycol nvarchar(20);

SET @mycol = 'Name';

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

使用者動作

請確定 SQL 指令碼中使用的任何變數都已宣告,然後再將它們使用於指令碼中的其他位置。

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

USE AdventureWorks;

GO

DECLARE @mycol nvarchar(20) ;

SET @mycol = 'Name';

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

請參閱

其他資源

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

說明及資訊

取得 SQL Server 2005 協助