我有表MyTable
,我在该表上有一个After trigger(On Insert)
。
当我在MyTable
上运行批量插入语句时,它会触发捕获插入数据的触发器(即用于审计日志目的)。
我们截断了表MyTable
,现在在表格中插入5条记录。此外,Auditlog
表具有现有数据。假设审计日志表中已有500条记录。
我的问题是,当表上有触发器时,SCOPE_IDENTITY()
语句在BULK INSERT
语句的情况下会返回什么?
--Create table
Create table MyTable
(
FirstCol int identity(1,1) primary key,
SecondCol varchar(10)
)
Create table AuditLog
(
AID int identity(1,1) primary key,
Comments varchar(50)
)
--Insert data to MyTable
INSERT INTO MyTable (SecondCol)
VALUES ('First'), ('Second'), ('Third'), ('Fourth'), ('Fifth')
Select * from MyTable
Select Scope_identity()
答案 0 :(得分:6)
scope_identity
返回同一范围内最后创建的ID。触发器在一个单独的作用域中运行,因此该函数将返回与触发器不存在时相同的内容。