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

这工作得很好-但只是一个单一的行。我如何重写它来执行多行更新?我想在这样的触发器中使用游标并不是一个好方法。

谢谢!

有两个选项:

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

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

最新更新