您目前已離線,請等候您的網際網路重新連線

不支援您的瀏覽器

您必須更新瀏覽器,才能使用此網站。

更新至最新版本的 Internet Explorer

如何指定輸出參數,當您使用 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
意見反應
ment.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> .location.protocol) + "//c.microsoft.com/ms.js'><\/script>");