如何指定輸出參數,當您使用 sp_executesql 在 SQL Server 預存程序

請注意--重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,且可能由 Microsoft Community 利用 Community Translation Framework技術或人工進行事後編修。翻譯過程並無專業譯者參與。Microsoft 同時提供使用者人為翻譯、機器翻譯及社群編修後的機器翻譯三種版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,所有翻譯文章都可能不盡完美,內容都可能出現詞彙、語意或文法上的錯誤。就翻譯內容之不正確或錯誤,或客戶因使用翻譯內容所產生的任何損害,微軟不負擔任何責任。Microsoft將依合理的商業努力不斷地更新機器翻譯軟體和工具,以期能為使用者提供更好的服務。

按一下這裡查看此文章的英文版本:262499
結論
Sp_executesql系統預存程序用來執行 T SQL 陳述式可以重複使用多次,或是執行動態建立的 T SQL 陳述式。所需的參數做為輸入處理 T-SQL 陳述式或批次。它也允許輸出參數可以指定,因此可以儲存從 T SQL 陳述式產生任何輸出,(雖然這並未記載在 SQL Server 線上叢書 》)。

輸出參數會sp_executesql有用的兩個案例是:
  • 如果sp_executesql產生時會很有用的輸出,儲存這個輸出來輸出參數可讓呼叫的批次參數用於後續的查詢。
  • 如果sp_executesql正在執行時使用輸出參數所定義的預存程序, sp_executesql的輸出參數可以用來存放從預存程序所產生的輸出。
其他相關資訊
下列兩個範例示範sp_executesql與輸出參數的使用。

範例 1
DECLARE @SQLString NVARCHAR(500)DECLARE @ParmDefinition NVARCHAR(500)DECLARE @IntVariable INTDECLARE @Lastlname varchar(30)SET @SQLString = N'SELECT @LastlnameOUT = max(lname)                   FROM pubs.dbo.employee WHERE job_lvl = @level'SET @ParmDefinition = N'@level tinyint,                        @LastlnameOUT varchar(30) OUTPUT'SET @IntVariable = 35EXECUTE sp_executesql@SQLString,@ParmDefinition,@level = @IntVariable,@LastlnameOUT=@Lastlname OUTPUTSELECT @Lastlname				
範例 2
CREATE PROCEDURE Myproc    @parm varchar(10),    @parm1OUT varchar(30) OUTPUT,    @parm2OUT varchar(30) OUTPUT    AS      SELECT @parm1OUT='parm 1' + @parm     SELECT @parm2OUT='parm 2' + @parmGODECLARE @SQLString NVARCHAR(500)DECLARE @ParmDefinition NVARCHAR(500)DECLARE @parmIN VARCHAR(10)DECLARE @parmRET1 VARCHAR(30)DECLARE @parmRET2 VARCHAR(30)SET @parmIN=' returned'SET @SQLString=N'EXEC Myproc @parm,                             @parm1OUT OUTPUT, @parm2OUT OUTPUT'SET @ParmDefinition=N'@parm varchar(10),                      @parm1OUT varchar(30) OUTPUT,                      @parm2OUT varchar(30) OUTPUT'EXECUTE sp_executesql    @SQLString,    @ParmDefinition,    @parm=@parmIN,    @parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUTSELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"godrop procedure Myproc				
如需詳細資訊,請參閱 「 sp_executesql (T SQL) 」 和 「 使用 sp_executesql 」 中的 SQL Server 書籍 Online.For 的詳細資訊,請參閱 「 使用 sp_executesql"SQL Server 線上叢書 》 中,和 「 sp_executesql (T-SQL) SQL Server 7.0 線上叢書 》 中"或"sp_executesql"SQL Server 2000年線上叢書 》 中。

警告:本文為自動翻譯

內容

文章識別碼:262499 - 最後檢閱時間:12/23/2014 01:05:00 - 修訂: 5.0

Microsoft SQL Server 7.0 Standard Edition, Microsoft SQL Server 2000 Standard Edition, Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Express Edition, Microsoft SQL Server 2005 Workgroup Edition

  • kbsqlsetup kbinfo kbmt KB262499 KbMtzh
意見反應