代码之家  ›  专栏  ›  技术社区  ›  Kashif

插入触发器不适用于批量插入;触发器正在使用游标

  •  1
  • Kashif  · 技术社区  · 15 年前

    在大容量插入时,insert触发器只对第一条记录起作用,不对所有其他记录起作用,但当使用cursor插入记录时,触发器可以正常工作。

    Insert触发器更新目标表的几列。要插入批量数据,我使用以下脚本

    INSERT INTO DestinationTable (Column1, Column2)
    SELECT * FROM SourceTable
    

    我在inserted record的trigger中得到了一些列,如下面的脚本,并对它们进行处理以更新DestinationTable的列

    SELECT @col1 = Column1, @col2 = Column2, FROM INSERTED
    
    1. 为什么批量插入时,触发器不会 工作?
    2. 我是错过了什么还是不得不错过

    我正在使用SQLServer2005

    编辑

    触发码

    http://stashbox.org/957108/InsertTrigger.sql

    谢谢。

    3 回复  |  直到 15 年前
        1
  •  1
  •   Martin Smith    15 年前

    从您发布的代码来看,批量插入的意思是插入多行。不是这个 BULK INSERT

    这个 INSERTED inserted

        2
  •  0
  •   spinon    15 年前

    我想我有一次读到一个非常干净的解决方法。让我看看能不能找到。

    编辑:你知道吗,当你说批量操作时,我甚至没有注意到sql,以为你在使用bcp。但我仍然记得我要找的工作。

    http://weblogs.sqlteam.com/tarad/archive/2004/09/14/2077.aspx

        3
  •  -1
  •   Ankit Rai    10 年前

    推荐文章