의외로 sp_executesql에 ouput parameter를 사용할 수 있다는 것을 모르는 사람이 많습니다. 오늘 회사동료가 동적쿼리를 만드는 것을 도와주는데, 저도 이 사실을 잊어먹어서 10여분간 헤맸습니다. 하하.
USE pubs
GO
DECLARE @au_lname varchar(40)
DECLARE @au_fname varchar(20)
DECLARE @au_id id
SET @au_id = '172-32-1176'
EXEC sp_executesql
N'SELECT @au_lname = au_lname, @au_fname = au_fname FROM dbo.authors WHERE au_id = @au_id'
, N'@au_lname varchar(40) out, @au_fname varchar(20) out, @au_id id'
, @au_lname out
, @au_fname out
, @au_id
SELECT @au_lname AS au_lname, @au_fname AS au_fname