您的位置:首页 > 数据库

如何指定输出参数,当您使用在 sp _ executesql SQL Server 中存储过程

2009-03-16 11:08 676 查看
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) DECLAR...

下面的两个示例演示使用输出参数,使用 sp _ executesql

示例 1

[code]DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @IntVariable INT
DECLARE @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 = 35
EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@level = @IntVariable,
@LastlnameOUT=@Lastlname OUTPUT
SELECT @Lastlname

[/code]

示例 2

[code]CREATE PROCEDURE Myproc
@parm varchar(10),
@parm1OUT varchar(30) OUTPUT,
@parm2OUT varchar(30) OUTPUT
AS
SELECT @parm1OUT='parm 1' + @parm
SELECT @parm2OUT='parm 2' + @parm
GO
DECLARE @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 OUTPUT

SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"
go
drop procedure Myproc

[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐