Возврат значения из хранимой процедуры - PullRequest
1 голос
/ 09 ноября 2011

У меня есть основная процедура, и в этом SP он выполняет следующий фрагмент кода:

EXEC @PropertyID = [import].[spInsertIntoTblMemberProperties]
blah blah blah

А затем в моих spInsertIntoTblMemberProperties следующие две строки кода:

select SCOPE_IDENTITY() as 'MemberPropertyID'; (if it is a new property)
select MemberPropertyID as 'MemberPropertyID'; (if it is an existing property)
from blah blah blah

Однако это не делает @PropertyID равным «MemberPropertID», и мне было интересно, как бы я это сделал.

Спасибо, Дэн

1 Ответ

4 голосов
/ 09 ноября 2011

Вам понадобится ВОЗВРАТ, чтобы сделать это в любом случае
Хотя это не идеально: это должно быть зарезервировано для статуса.

Я бы использовал параметр OUTPUT

CREATE PROC ... 
    @PropertyID int OUTPUT
AS
...

select @PropertyID = SCOPE_IDENTITY() as 'MemberPropertyID'; (if it is a new property)
...
select @PropertyID = MemberPropertyID as 'MemberPropertyID'; (if it is an existing property)
from blah blah blah
...
GO

EXEC [import].[spInsertIntoTblMemberProperties] @PropertyID OUTPUT

Пример различий в технике: set @var = exec selected_procedure

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