当前位置: 代码迷 >> Sql Server >> 问个@IDENTITY 的基础有关问题
  详细解决方案

问个@IDENTITY 的基础有关问题

热度:579   发布时间:2016-04-24 23:36:35.0
问个@IDENTITY 的基础问题
1、IDENT_CURRENT 返回为某个会话和当前作用域中的指定表生成的最新标识值。
  如果 IDENT_CURRENT 值为 NULL(因为表从未包含行或已被截断),IDENT_CURRENT 函数将返回种子值。
2、@@IDENTITY 返回为跨所有作用域的当前会话中的某个表生成的最新标识值。
3、SCOPE_IDENTITY 返回为当前会话和当前作用域中的某个表生成的最新标识值。

从字义上来看   @@IDENTITY  会有 并发冲突,  但是我google了一下 有的地方说有并发冲突,有的地方说没有并发冲突, 那到底有没有并发冲突呢?

同样也 问问IDENT_CURRENT  有没有并发冲突.

------解决方案--------------------
自己实现看看吧~
------解决方案--------------------
你先搞清楚,作用域,会话的概念,然后再理解什么事并发。
------解决方案--------------------
如果没有触发器,SCOPE_IDENTITY是最好的
------解决方案--------------------
可以看看我这篇:http://blog.csdn.net/dba_huangzj/article/details/7685162
对于并发比较高的情况下,最好不要使用@@identity
------解决方案--------------------
SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。 
  相关解决方案