MS SQL Server에서 동적으로 SQL을 짜고, 실행하고, 값을 돌려받을 수 있다.
이하의 소스가 그 예로, 동적SQL 속의 변수(@sDate1,@sDate2)에 할당된 값을 외부의  변수(@sOutput1,@sOutput2)에 할당하고 있다.
declare @sSQL      nvarchar(max);
declare @sParam    nvarchar(max);
declare @sOutput1  char(8);
declare @sOutput2  char(10);

set @sSQL = N'select @sDate1 = convert(char(8),getdate(),112)'
set @sSQL = @sSQL + N',@sDate2 = convert(char(10),getdate(),111)'

set @sParam = N'@sDate1 char(8) OUTPUT';
set @sParam = @sParam + N',@sDate2 char(10) OUTPUT';

execute sp_executesql @sSQL, @sParam
                    , @sDate1 = @sOutput1 OUTPUT
                    , @sDate2 = @sOutput2 OUTPUT

select @sOutput1, @sOutput2

→실행결과
20110210 2011/02/10


예에서는 1행의 값을 돌려주기에 문제없지만, 북수행의 결과를 돌려줄 경우엔 최종행의 값이 얻어지게 된다.
 오라클에서는 에러가 나지만, MS SQL Server에서는 에러는 일어나지 않는다.
 
블로그 이미지

Haronoid

기본적으로 프로그래밍 관련 메모를 중점으로 합니다. 자세한 설명이 결여되어 있을 가능성이 있습니다.

카테고리

분류 전체보기 (29)
프로그래밍 기본 (1)
VB&VBA (1)
JAVA (0)
ORACLE (10)
WidnowsCommandLine (2)
Excel (1)
Windows (1)
.NET (6)
MS SQL (6)