вернуть два выходных параметра sp_executesql - PullRequest
10 голосов
/ 24 ноября 2011

У меня динамический запрос. Я хочу получить из него два выходных параметра. Я использовал следующий код, но выходные параметры возвращают нуль

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 Ответ

14 голосов
/ 24 ноября 2011

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

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

, а затем украсить выводы с помощью OUTPUT;

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

может также передать ''CUSTOMER 99'' в качестве ввода)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...