仅在最后一条记录中进行批量插入时,触发器正在执行。
如果我批量插入10条记录,则触发器仅针对第10条记录运行。但我需要触发器来运行所有10条记录。
请帮我举个例子
答案 0 :(得分:2)
我假设你在说SQL Server? This page给你一些解释。要启用触发器,您可以使用如下语法:
INSERT ... SELECT * FROM OPENROWSET(BULK...)
答案 1 :(得分:1)
每个语句执行触发器,而不是每行执行。如果从插入或删除的表中的列中分配一些变量,则只能获得单个,可能是最后一个值。插入的表将包含批量插入批处理中的行数。以下是AdventureWorks数据库的示例:
declare @AddressLine nvarchar(50)
select count(*) [Address count] from Person.Address
select @AddressLine = AddressLine1 from Person.Address
select @AddressLine --only one, last address line