C# 多行批量插入的触发器未触发?

C# 多行批量插入的触发器未触发?,c#,asp.net,sql-server,triggers,C#,Asp.net,Sql Server,Triggers,我有一个插入后触发器,当我在表中插入一条记录时,它工作正常 ALTER TRIGGER [dbo].[Insert_Into_Questions_Table] ON [dbo].[Questionmaster] After Insert AS BEGIN Insert into Questions(Question_questionid,Question_questionname,Question_answer1,Question_answer2,Question_answer3,Ques

我有一个插入后触发器,当我在表中插入一条记录时,它工作正常

ALTER TRIGGER [dbo].[Insert_Into_Questions_Table] 
ON  [dbo].[Questionmaster]
After Insert
AS 
BEGIN
Insert into Questions(Question_questionid,Question_questionname,Question_answer1,Question_answer2,Question_answer3,Question_answer4,Exam_examtypeid,User_Userid)
select Question_questionid,Question_questionname,Question_answer1,Question_answer2,Question_answer3,Question_answer4,Exam_examtypeid,User_Userid from Inserted
SET NOCOUNT ON;

-- Insert statements for trigger here

END
问题


当我试图从我的C代码触发器中使用BulkCopy插入多条记录时,该触发器不起作用。

默认情况下,BULK Insert语句不执行触发器。但是,可以使用FIRE_触发器限定符启用触发器:

SQL Server 2005及更高版本对触发器使用行版本控制,并将行版本存储在tempdb的版本存储中。在使用触发器大容量导入大量数据记录之前,可能需要扩展tempdb的大小,以适应触发器对版本存储的影响。更多信息


触发器在数据库中的每个语句而不是每行触发一次。因此,您需要更改插入批量记录的方式

看看这篇msdn文章


这说明了如何在批量插入中使用触发器

。我需要在哪里使用BulkInsert语句。?当您将大容量数据插入此表时,您是如何操作的?我正在使用C#代码中的Sql BulkCopy方法。请尝试使用此SqlBulkCopyOptions.FireTriggersusing(SqlBulkCopy s=new SqlBulkCopy(dbConnection,SqlBulkCopyOptions.FireTriggers,null))