获取存储过程

时间:2016-06-16 06:56:12

标签: sql-server stored-procedures triggers

我有一个存储过程,它会更新列中的多行,如下所述:

update tableA 
set isactive = 0 
where email  = ''
如果TableA发生更改,

tableALog会有更新触发器插入isactive。 现在,在执行update语句后的存储过程中,我需要获取tableALog主键值。

我使用了以下方法,但没有运气。

@@identity - 失败,因为它返回上次更新的值。但我需要在日志表中插入主键值列表

OUTPUT已插入。 - 不能使用它,因为它始终适用于存储过程中的当前作用域。但我需要从触发器插入的表值。

如果您有任何建议,请与我们联系。

1 个答案:

答案 0 :(得分:1)

这开始是一个评论,但它太长了,所以......

在存储过程和它们激活的触发器之间共享数据很棘手, 由于触发器不能获取参数,因此它们不能返回值 根据我的经验,实现这种事情的最佳方法是在表中添加一个列,设置触发器以识别触发器正在处理的记录,并为触发器添加一个表(可以是临时表)以输出要读取的数据和存储过程。