вернуть два выходных параметра sp_executesql

У меня динамический запрос, я хочу получить из него два выходных параметра. Я использовал следующий код, но выходные параметры возвращают 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

Вам нужно указать, что выделяется для выходов;

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'' в качестве ввода)