语法
sp_executesql [ @stmt = ] stmt [ {, [@params=] N'@parameter_name data_type [ [ OUT [ PUT ][,...n]' } {, [ @param1 = ] 'value1' [ ,...n ] } ]
1、获取一个输出结果
使用output获取输出结果的值
declare @num int,
@sqls nvarchar(4000)
set @sqls='select @a=count(*) from customer '
exec sp_executesql @sqls,N'@a int output',@num output
select @num2、两个输出结果
declare @num int, @sqls nvarchar(4000) ,@sname char(10)
set @sqls='select @a=sno,@b=sname from aa '
exec sp_executesql @sqls,N'@a int output,@b char(10) output',@num output,@sname output
select @num
select @sname3、输入参数
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OID INT;
SET @TableName = 'aa ';
SET @OID = 1;
SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE sno ='+ cast(@OID as char(10)) ;
exec sp_executesql @sql
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OID INT;
SET @TableName = 'aa ';
SET @OID = 1;
SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE sno =@oid'
exec sp_executesql @stmt= @sql,
@params = N'@OID AS INT ',
@OID = @OID或
DECLARE @TableName VARCHAR(50),@sql NVARCHAR(MAX),@OID INT;
SET @TableName = 'aa ';
SET @OID = 1;
SET @sql = 'SELECT * FROM '+QUOTENAME(@TableName) + ' WHERE sno =@oid'
exec sp_executesql @sql, N'@OID AS INT ', @OID
本文介绍如何使用sp_executesql过程在SQL Server中动态执行SQL语句并处理输出参数,包括单个及多个输出结果的获取方法。
1230

被折叠的 条评论
为什么被折叠?



