返回两个输出参数sp_executesql

时间:2011-11-24 12:07:15

标签: sql-server-2005

我有动态查询我想从中获取两个输出参数我使用了以下代码,但输出参数返回null

declare @query nvarchar(max);
declare @result int; 
declare @type int
declare @mainVarcharLength int; 

set @query = 'select   count(*) ,  Type_Code from Customers   WHERE Customers.Cust_Name =  ''CUSTOMER 99''  '
set @query = @query + '  and Cus_Is_Active = 1  Group BY   Type_Code';
select  @query

EXEC sp_executesql @query, N'@result int OUTPUT,  @type int OUTPUT', @result,  @type

select @result
select @type

如何解决这个问题,以及如何传递多个输出参数

1 个答案:

答案 0 :(得分:14)

您需要说明分配给输出的内容;

set @query = 'select @result=count(*), @type=Type_Code from Customers ....'

然后用OUTPUT;

装饰输出
EXEC sp_executesql @query,   
    N'@result int OUTPUT, @type int OUTPUT',
    @result OUTPUT, 
    @type OUTPUT

(您也可以传递''CUSTOMER 99''作为输入)