gpt4 book ai didi

c# - 使用 SqlBulkCopy 为每个插入的行触发触发器

转载 作者:太空狗 更新时间:2023-10-30 00:10:51 26 4
gpt4 key购买 nike

我正在使用 SqlBulkCopy 类在表 tbl_records 中一次插入 50k 行我已经在此表上设置了一个 After Insert 触发器并使用以下代码

SqlBulkCopy SqlBc1 = new SqlBulkCopy(strConnString, SqlBulkCopyOptions.FireTriggers);

// Set DataReader For SqlBulkCopy

sqlComm = new SqlCommand(strQuery, sqlTemCon);
sqlComm.CommandTimeout = 3600000;
sqlComm.CommandType = System.Data.CommandType.Text;
SqlDataReader dReader = sqlComm.ExecuteReader();
SqlBc1.WriteToServer(dReader);

但是在执行 prog 之后。它仅触发插入的 50k 中的 First

我希望它应该为每一行触发。我该怎么做??

最佳答案

触发器永远不会按行触发。它们针对相应 DML 语句的所有行触发。重写您的触发器,使其能够处理包含许多行的 INSERTED 表。无论如何,这是最佳实践和必需的实践。

it is firing trigger for only first row inserted out of 50k rows

您一定是误解了这种情况,可能是因为您没有意识到触发器可以在虚拟表中包含多行。

关于c# - 使用 SqlBulkCopy 为每个插入的行触发触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19002947/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com