批量插入时触发更新后触发器

时间:2018-06-25 14:47:46

标签: c# sql-server

我有2个表,第一个是原始表,第二个是第一个表的更新日志。

我在c#中执行一个代码,该代码在原始表中执行一个DataTable的大容量插入:

using (var bulkCopy = new System.Data.SqlClient.SqlBulkCopy(conexion))
{
    bulkCopy.DestinationTableName = "Original";
    bulkCopy.WriteToServer(tab);
}

在原始表中,我有一个AFTER UPDATE触发器,用于将修改后的数据从原始表复制到日志表:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[CreateVersionArchiveRow]
   ON  [dbo].[Original]
  AFTER Update
AS 
BEGIN

    SET NOCOUNT ON;
INSERT INTO dbo.Original_LOG

   SELECT *, getdate()
   FROM deleted;
   END

问题是,当我执行批量COPY(仅从C#执行,如果从SQL Server MANAGEMENT Studio的TRERE执行没有问题),将触发触发器并将所有数据从原始表复制到日志表。我想要的是在执行UPDATE时将原始数据从Oginal表复制到日志,而不是在执行BULK INSERT

时复制

我不知道我在做什么错

0 个答案:

没有答案