SP_EXECUTESQL을 이용한 동적 쿼리 만들기!
원문 : http://www.ihelpers.co.kr/programming/tipntech.php?CMD=view&IDX=252&source=naverclick
참조 : http://msdn.microsoft.com/ko-kr/library/ms175170.aspx
-- 일단 테이블을 만들고
create table dbo.table1 (
a int
, b int
, c int
)
예제 1 : INPUT 파라미터를 이용한 예제
-- 쿼리문을 생성 함.
declare @table as nvarchar(20)
declare @stmt as nvarchar(100)
declare @params as nvarchar(100)
set @table = 'dbo.table1'
set @stmt = 'insert into ' + @table + ' '
set @stmt = @stmt + 'values (@a, @b, @c)'
set @params = '@a int, @b int, @c int'
-- 시승템 프로시저인 sp_executesql 를 이용하여 쿼리를 날려줌..;
exec sp_executesql @stmt, @params, @a=1, @b=2, @c=3
-- 확인
select * from table1
예제 2 : OUTPUT 파라미터를 이용한 예제
-- 쿼리문 생성
declare @stmt as nvarchar(100)
declare @params as nvarchar(100)
declare @orderret as int
set @stmt = 'select @ordercnt = count(*) from dbo.table1'
set @params = '@ordercnt as int OUTPUT' -- OUTPUT 키워드에 주의
-- 여기도 OUTPUT 키워드를 지정한다.
exec sp_executesql @stmt, @params, @ordercnt = @orderret OUTPUT
-- 확인
select @orderret