вернуть два выходных параметра 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''
в качестве ввода)