Sql 从存储过程返回值

Sql 从存储过程返回值,sql,sql-server,sql-server-2005,Sql,Sql Server,Sql Server 2005,我有一个主程序,在这个SP中它执行以下代码: EXEC @PropertyID = [import].[spInsertIntoTblMemberProperties] blah blah blah 然后在我的spInsertIntoTblMemberProperties中显示以下两行代码: select SCOPE_IDENTITY() as 'MemberPropertyID'; (if it is a new property) select MemberPropertyID as 'M

我有一个主程序,在这个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',我想知道我该怎么做

谢谢,

你需要回来按自己的方式做 但这并不理想:这应该保留为状态

我会使用一个输出参数

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

技术差异示例:

您需要返回以自己的方式进行操作 但这并不理想:这应该保留为状态

我会使用一个输出参数

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

技术差异示例:

为什么有两个选择?因为一个用于创建新属性时,另一个用于更新属性时。行刑时只有一个人被碰过感谢你的精准。当我读到你的消息时我很累…为什么你有两个选择?因为一个用于创建新属性时,另一个用于更新属性时。行刑时只有一个人被碰过感谢你的精准。当我读到你的留言时我很累。。。