插入表存储过程结果和变量

时间:2012-02-28 14:41:28

标签: sql sql-server-2008 stored-procedures insert

我需要在表中插入存储过程(SP)的结果以及其他一些变量。 我知道如何插入SP结果而不是变量。有没有办法可以做到这一点,而无需编写单独的更新查询或将变量传递/返回SP。

INSERT INTO contacttable(name, address, telnum)
EXEC GetContactDetails @ContactId

UPDATE contacttable SET linkId = @LinkId where id = @ContactId

我是否可以将@linkId变量传递给INSERT而不必进行单独的更新?

感谢。

1 个答案:

答案 0 :(得分:4)

您无法按照解释当前情况的方式执行此操作。

您可以修改proc以接收额外参数,然后从那里返回它,以便insert语句已经具有此参数,或者您继续执行您正在执行的操作。

另一种可能性是将proc更改为表值函数,以便您可以从结果集中专门选择所需的列,并在插入中添加额外的参数。类似的东西:

INSERT INTO contacttable(name, address, telnum,linkid)
select name, address,telnum,@linkid from fnGetContactDetails(@ContactID)