我有一个主程序,在这个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',我想知道我会怎么做。
谢谢, 丹
答案 0 :(得分:4)
你需要RETURN来做到这一点 但这并不理想:这应保留给状态。
我使用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