안녕하세요^^

SQL2000을 사용중에 있습니다.

동적쿼리를 사용하고 있는데요

쿼리문이 4000자가 넘었습니다..

DECLARE @nvcStrSQL NVARCHAR(4000)

DECLARE @nvcStrSQL2 NVARCHAR(4000)

DECLARE @vchTemp VARCHAR(50)

DECLARE @vchSearch

SET @vchSearch = 'temp'

 

SET @nvcStrSQL = ''

SET @nvcStrSQL = @nvcStrSQL + ' SELECT @vchTemp=temp '

SET @nvcStrSQL2 = ''

SET @nvcStrSQL2 = @nvcStrSQL2 + ' FROM [table] '

SET @nvcStrSQL2 = @nvcStrSQL2 + ' WHERE temp=@vchSearch '

...

 EXEC(' EXEC sp_executesql N'''+ @nvcStrSQL+@nvcStrSQL2 +''',N''@vchSearch VARCHAR(50),@vchTemp VARCHAR(50) OUTPUT'', @vchTemp='''+@vchTemp+''',@vchTemp=@vchTemp OUTPUT ')

 

대강 위와같은 소스입니다만..

vchSearch같은경우는 변수바인딩이 잘이루어져서 검색도 잘됩니다..

그런데 vchTemp값을 OUTPUT으로 받아올려니깐 @vchTemp 변수를 선언해야한다고 하네요;;

쿼리문이 4000자가 넘어서 문자열을 합쳐서 EXEC로 동적쿼리문을 실행하는경우엔 어떻게해야 변수에 컬럼값을 담아올수 있을까요??

 

감사합니다~~