有時為了程式撰寫方便,會透過exec執行StoreProcedure的方式,但卻遇到不知該如何把回傳值回傳至外部所定義的變數之中


請參考以下語法


 


DECLARE @SQL varchar(max)


DECLARE @tmp varchar(max)


--設定預設值


SET @tmp = ''


--設定欲執行的StoreProcedure,注意OutPut的變數使用”?”


SET @SQL = 'SYS..uspSYSGetEmail @IDCode=''1'',@IDs=''93;151;1183'',@CompanyID=1,@Email=  ? OUTPUT;'


 


--AT SRVDB指定該段SQL語法的LINKED SERVER,若為本機則不須指定


--故以下的語法用意為執行SRVDB.SYS..uspSYSGetEmail…


EXEC (@SQL, @tmp) AT SRVDB


PRINT @tmp


 


P.S.以上SQL語法的參考如下(全部將參數透過外部參數帶入,避免組字串時被一堆的單引號搞混


SET @SQL = 'SYS..uspSYSGetEmail @IDCode= ?,@IDs=? ,@CompanyID=?,@Email=  ? OUTPUT;'


EXEC (@SQL, '1', '93;151;1183', 1, @tmp) AT SRVDB



 


 

nelman 發表在 痞客邦 PIXNET 留言(0) 人氣()