我需要在表中插入存储过程(SP)的结果以及其他一些变量。 我知道如何插入SP结果而不是变量。有没有办法可以做到这一点,而无需编写单独的更新查询或将变量传递/返回SP。
即
INSERT INTO contacttable(name, address, telnum)
EXEC GetContactDetails @ContactId
UPDATE contacttable SET linkId = @LinkId where id = @ContactId
我是否可以将@linkId变量传递给INSERT而不必进行单独的更新?
感谢。
答案 0 :(得分:4)
您无法按照解释当前情况的方式执行此操作。
您可以修改proc以接收额外参数,然后从那里返回它,以便insert语句已经具有此参数,或者您继续执行您正在执行的操作。
另一种可能性是将proc更改为表值函数,以便您可以从结果集中专门选择所需的列,并在插入中添加额外的参数。类似的东西:
INSERT INTO contacttable(name, address, telnum,linkid)
select name, address,telnum,@linkid from fnGetContactDetails(@ContactID)