Проблема с выходным параметром в процедуре Store - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть 2 стола Customer и Beneficiary.Добавлены 2 или более бенефициара с одним номером мобильного клиента.Я создал сохраненный процесс, чтобы получить имя получателя, связанное с этим номером мобильного телефона

create Proc Customer
(
@Mobile bigint,

@Beneficiary  varchar(100) out,

@Beneficiary2 varchar(100) out  
)
as

Begin

Select @Beneficiary = Beneficiary_Name, @Beneficiary2 = Beneficairy_Name from Beneficiary_master
as a 

join Customer_Master as b
on a.CustomerID= b.CustomerID

where Mobile_Number = @Mobile

End

Declare @Beneficiary varchar(100)

Declare @Beneficiary2 varchar(100)

Exec spCustomer 999999999, @Beneficiary out, @beneficiary2 out

Как получить оба имени получателя, так как я получаю только 1 имя

1 Ответ

0 голосов
/ 11 февраля 2019

Ваш запрос выбора вернет записи, соответствующие оператору выбора, и присвоит результат последней записи переменным @Beneficiary и @Beneficiary2

Вам необходимо изменить запрос выборачтобы получить желаемый о / п.Пожалуйста, попробуйте это утверждение, и если ваше требование вашего костюма, внесите соответствующие изменения в SP

Declare  @Mobile bigint =123

Declare @Beneficiary  varchar(100) 

Declare @Beneficiary2 varchar(100) 

Select @Beneficiary = Beneficiary_Name 
from Beneficiary_master as a 
join Customer_Master as b on a.CustomerID= b.CustomerID
where Mobile_Number = @Mobile
ORDER BY Beneficiary_Name ASC
OFFSET  0 ROWS 
FETCH NEXT 1 ROWS ONLY

Select @Beneficiary2 = Beneficiary_Name 
from Beneficiary_master as a 
join Customer_Master as b on a.CustomerID= b.CustomerID
where Mobile_Number = @Mobile
ORDER BY Beneficiary_Name ASC
OFFSET  1 ROWS 
FETCH NEXT 1 ROWS ONLY

Select @Beneficiary Beneficiary, @Beneficiary2 Beneficiary2
...