原文: https://rainmakerho.github.io/2017/10/03/20171003-2/

(1) Store Procedue ,透過 sp_executesql + 它的 output 參數來取得資料
DECLARE @sql NVARCHAR(max), @outputcode NVARCHAR(4000);
SET @sql =
'EXEC SP_GETSERNO @RETURNS=@outputcode output';
exec sp_executesql @sql, N'@outputcode NVARCHAR(4000) out', @outputcode out
SELECT @outputcode;


(2) 取得 t-sql 裡面的內容,需要先建立 temp table ,或是 TABLE 變數,然後在 Exec 的 t-sql 裡面使用
DECLARE @ATT_IDENT TABLE (ATT_IDENT int);
INSERT @ATT_IDENT
exec ('SELECT top 1 ATT_IDENT FROM [dbo].[myTable]');
select * FROM @ATT_IDENT;


(3) t-sql,透過 sp_executesql + 它的 output 參數來取得資料,例如,
DECLARE @IDT NUMERIC
exec sp_executesql N'SELECT TOP 1 @IDT = ATT_IDENT FROM [dbo].[myTable]', N'@IDT NUMERIC out', @IDT OUT
SELECT @IDT;

(4) 透過 OPENQUERY 的方式,詳細可以參考「讓 Execute 可以搭配 Select Into,而不再只有 Insert into