2011-11-24 27 views
10

tengo consulta dinámica quiero conseguir dos parámetros de salida desde que he usado el siguiente código, pero los parámetros de salida vuelven nularegresan dos parámetros de salida Sp_executesql

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 

¿Cómo resolver esto, y cómo pasar varios parámetros de salida

Respuesta

14

Debe indicar qué se asigna a las salidas;

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

luego decorar las salidas con OUTPUT;

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

(También podría pasar ''CUSTOMER 99'' como entrada)

Cuestiones relacionadas