MSSQLSERVER_137

적용 대상:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

세부 사항

attribute
제품 이름 SQL Server
이벤트 ID 137
이벤트 원본 MSSQLSERVER
구성 요소 SQLEngine
심볼 이름 P_SCALAR_VAR_NOTFOUND
메시지 텍스트 스칼라 변수 "%.*ls"을(를) 선언해야 합니다.

설명

이 오류는 SQL 스크립트에서 변수를 먼저 선언하지 않고 사용하는 경우에 발생합니다. 다음 예제에서는 @mycol 선언되지 않았기 때문에 SET 문과 SELECT 문 모두에 대해 오류 137을 반환합니다.

SET @mycol = 'ContactName';  
  
SELECT @mycol; 

이 오류의 더 복잡한 원인 중 하나는 EXECUTE 문 외부에서 선언된 변수를 사용하는 것입니다. 예를 들어 SELECT 문에 지정된 변수 @mycol SELECT 문에 로컬이므로 EXECUTE 문 외부에 있습니다.

USE AdventureWorks2022;  
  
GO  
  
DECLARE @mycol nvarchar(20);  
  
SET @mycol = 'Name';  
  
EXECUTE ('SELECT @mycol FROM Production.Product;'); 

사용자 작업

스크립트의 다른 위치에서 사용되기 전에 SQL 스크립트에 사용되는 변수가 선언되었는지 확인합니다.

스크립트 외부에서 선언된 EXECUTE 문에서 변수를 참조하지 않도록 스크립트를 다시 작성합니다. 예:

USE AdventureWorks2022;  
  
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)