sql语句 使用时需注意的一些细节 总结
@@IDENTITY,原因是 @@IDENTITY 它总是获取最后一条变更数据的自增字段的值,而忽略了进行变更操作所在的范围约束。
描述:表A和表B 两个表,现在在表 A 上定义了一个Insert触发器,当在表A中插入一条数据时,自动在表B也插入一条数据。有两个操作:在A中插入一条数据,接着在B中随后插入一条数据。在表A插入一条数据后,使用了SELECT @@IDENTITY 输出时,是谁最后插入就输出谁,那么就是B了。而本意是得到A的@@IDENTITY。
解决方案:使用SCOPE_IDENTITY()来替换。@@IDENTITY 和 SCOPE_IDENTITY 将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。
未完待续
···

浙公网安备 33010602011771号