你目前正处于脱机状态,正在等待 Internet 重新连接

如何使用 sp_executesql 时,指定输出参数在 SQL Server 存储过程

重要说明:本文是由 Microsoft 机器翻译软件进行的翻译并可能由 Microsoft 社区通过社区翻译机构(CTF)技术进行后期编辑,或可能是由人工进行的翻译。Microsoft 同时向您提供机器翻译、人工翻译及社区后期编辑的文章,以便对我们知识库中的所有文章以多种语言提供访问。翻译的文章可能存在词汇、句法和/或语法方面的错误。Microsoft 对由于内容的误译或客户对内容的使用所导致的任何不准确、错误或损失不承担责任。

点击这里察看该文章的英文版: 262499
概要
Sp_executesql系统存储过程用于执行可重复使用多次,T SQL 语句或执行动态生成的 T SQL 语句。它将参数作为输入来处理的 T SQL 语句或批处理。它还允许输出参数,以指定,这样 (尽管这不 SQL Server 联机丛书中已记录),可以将存储从 T SQL 语句生成任何输出。

输出参数将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 的其他信息,请参阅 SQL Server 联机丛书中的"使用 sp_executesql"和"sp_executesql (T-SQL) SQL Server 7.0 联机丛书中"或 SQL Server 2000年联机丛书中的"sp_executesql"。

警告:本文已自动翻译

属性

文章 ID:262499 - 上次审阅时间:12/23/2014 00:51:00 - 修订版本: 5.0

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

  • kbsqlsetup kbinfo kbmt KB262499 KbMtzh
反馈