更新触发器后的MSSQL:多行存储的Prc

贾斯特

我已经写了一个存储过程,我想在行更新时调用它。

它可能看起来像这样:

Create PROCEDURE [TraceChange]
    @Id uniqueidentifier,
AS
BEGIN
    /*do some inserts, updates, etc*/
END

现在,我为表创建一个触发器,该触发器对于单行更新工作良好:

Create TRIGGER T1_TraceInsert
   on T1
   AFTER UPDATE
AS 
BEGIN
    SET NOCOUNT ON;
    declare @id uniqueidentifier
    exec TraceChange @id
END

这可以正常工作-但仅适用于单个Row。如何重写它以在多行更新上执行AFAIK在此类触发器中使用游标不是一个好方法。

谢谢!

安东

有两种选择:

1)在while循环中处理数据-从插入的表中获取数据,并执行SP X次-每行一次。

2)重写接受表作为输入参数的SP(或创建一个新SP)。如果可能,一次性处理所有行。取决于SP的代码。因此,在触发器中,您将执行该SP并传递一些基于插入表的预定义

有关示例,请参见https://msdn.microsoft.com/zh-CN/library/bb510489.aspx

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章