我注意到一种非常奇怪的行为.如果我创建一个insert-select语句并且select部分没有返回数据,则插入部分仍然执行,甚至调用insert trigger(在插入触发器中插入的伪插入中有0行).
例:
insert into table1 column1
select column1 from table2 where condition = 'Never met'
Run Code Online (Sandbox Code Playgroud)
输出:
(0 row(s) affected) // 0 rows inserted
(1 row(s) affected) // log from trigger
Run Code Online (Sandbox Code Playgroud)
可能是由'通用'触发器引起的(一次声明FOR INSERT,UPDATE,DELETE)?我知道这更像是假设性问题,我必须接受这种行为.但为什么会这样呢?对我来说完全是无稽之谈.我正在使用SQL Server 2005.
- kwitee