Sql 多行更新触发器

Sql 多行更新触发器,sql,database,triggers,Sql,Database,Triggers,如果我有一份声明 如果更新多行,则只有触发器将仅在正在更新的第一行或最后一行(不确定是哪一行)上触发。我需要为正在更新到特定表中的所有记录创建一个触发器假设SQL Server,无论更新了多少行,每次更新都只触发一次触发器。如果需要基于对多行的更新执行一些附加逻辑,则可以通过查看触发器上下文中可访问的插入和删除的逻辑表来访问更改的记录 您尚未指定数据库。。。。。 在Oracle中,可以根据事务的类型为单个行定义触发器: CREATE OR REPLACE TRIGGER BIUDR_MY_TAB

如果我有一份声明
如果更新多行,则只有触发器将仅在正在更新的第一行或最后一行(不确定是哪一行)上触发。我需要为正在更新到特定表中的所有记录创建一个触发器

假设SQL Server,无论更新了多少行,每次更新都只触发一次触发器。如果需要基于对多行的更新执行一些附加逻辑,则可以通过查看触发器上下文中可访问的插入和删除的逻辑表来访问更改的记录

您尚未指定数据库。。。。。 在Oracle中,可以根据事务的类型为单个行定义触发器:

CREATE OR REPLACE TRIGGER BIUDR_MY_TABLE
 BEFORE INSERT OR UPDATE OR DELETE
    ON MY_TABLE
    REFERENCING NEW AS NEW OLD AS OLD
    FOR EACH ROW
DECLARE
  pk   PLS_INTEGER;
BEGIN
   etc ....

您只需要指出是否需要“针对每一行”或“针对每一条语句”执行触发器。在触发器定义中添加这两个子句中的一个将告诉DBMS何时执行触发器(大多数,但不是全部,DBMS支持它)。如果不指明此子句,则DBMS将使用默认选项,在您的情况下,该选项似乎是FOR EACH STATEMENT选项,这就是为什么触发器只为每个更新语句触发一个选项,而不管您要更新多少行

更安静地问问题。我去了一部分deaf@sony:请永远不要使用全能帽!看起来你在大喊大叫!哪个数据库软件?触发器支持因供应商而异。建议您向我们提供您正在使用的触发器代码和数据库,然后我们可以帮助您实现所需的功能。