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 不限于特定的作用域。

 

未完待续

···

posted @ 2015-08-28 10:09  只做我自己  阅读(103)  评论(0)    收藏  举报