MSSQLSERVER_137MSSQLSERVER_137

세부 정보Details

제품 이름Product Name SQL ServerSQL Server
이벤트 IDEvent ID 137137
이벤트 원본Event Source MSSQLSERVERMSSQLSERVER
구성 요소Component SQLEngineSQLEngine
심볼 이름Symbolic Name P_SCALAR_VAR_NOTFOUNDP_SCALAR_VAR_NOTFOUND
메시지 텍스트Message Text 스칼라 변수 "%.ls"을(를) 선언해야 합니다.Must declare the scalar variable "%.ls".

설명Explanation

이 오류는 SQL 스크립트에서 변수를 먼저 선언하지 않고 사용하는 경우에 발생합니다.This error occurs when a variable is used in a SQL script without first declaring the variable. 다음 예제에서는 @mycol이 선언되지 않았으므로 SET 및 SELECT 문에 대해 오류 137이 반환됩니다.The following example returns error 137 for both the SET and SELECT statements because @mycol is not declared.

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

SELECT @mycol;</span><span class="sxs-lookup">SELECT @mycol;</span></span>

이 오류의 좀 더 복잡한 원인 중 하나로 EXECUTE 문 외부에서 선언된 변수를 사용하는 경우가 있습니다.One of the more complicated causes of this error includes the use of a variable that is declared outside the EXECUTE statement. 예를 들어 SELECT 문에 지정된 @mycol 변수는 SELECT 문에서 로컬로 사용되므로 EXECUTE 문 외부에 있습니다.For example, the variable @mycol specified in the SELECT statement is local to the SELECT statement; thus it is outside the EXECUTE statement.

USE AdventureWorks2012;USE AdventureWorks2012;

GOGO

DECLARE @mycol nvarchar(20);DECLARE @mycol nvarchar(20);

SET @mycol = 'Name';SET @mycol = 'Name';

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

사용자 동작User Action

SQL 스크립트에서 변수를 사용하기 전에 해당 변수를 선언했는지 확인하십시오.Verify that any variables used in a SQL script are declared before being used elsewhere in the script.

EXECUTE 문 외부에서 선언된 변수를 참조하지 않도록 스크립트를 다시 작성하십시오.Rewrite the script so that it does not reference variables in the EXECUTE statement that are declared outside of it. 예를 들어For example:

USE AdventureWorks2012;USE AdventureWorks2012;

GOGO

DECLARE @mycol nvarchar(20) ;DECLARE @mycol nvarchar(20) ;

SET @mycol = 'Name';SET @mycol = 'Name';

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

참고 항목See Also

EXECUTE(Transact-SQL)EXECUTE (Transact-SQL)
SET 문(Transact-SQL)SET Statements (Transact-SQL)
DECLARE @local_variable(Transact-SQL)DECLARE @local_variable (Transact-SQL)