newsequentialid、scope_identity 和@@identity 有啥区别? [复制]
Posted
技术标签:
【中文标题】newsequentialid、scope_identity 和@@identity 有啥区别? [复制]【英文标题】:What is the difference between newsequentialid, scope_identity and @@identity? [duplicate]newsequentialid、scope_identity 和@@identity 有什么区别? [复制] 【发布时间】:2018-12-08 20:29:03 【问题描述】:我想让我的 UserID 列成为 GUID 类型,我找到了这三个选项。我不知道它们之间的主要区别是什么。
【问题讨论】:
如果您使用 GUID,SCOPE_IDENTITY()
和 @@IDENTITY
立即没有问题,它们都处理 IDENTITY
列。
另外,查看(损坏的)OUTPUT
子句以检索服务器生成的 ID。
【参考方案1】:
我认为最好的版本是NEWSEQUENTIALID()
。
->@@IDENTITY
返回最后一个 auto_incremented(identity)
值(即使它是由触发器/用户定义的函数创建的)。->SCOPE_IDENTITY()
返回最后一个创建的标识值(不是由触发器或udf)。->NEWSEQUENTIALID()
创建的 GUID 大于自 Windows 启动以来此函数在指定计算机上先前生成的任何 GUID。 (更多信息请见https://docs.microsoft.com/en-us/sql/t-sql/functions/newsequentialid-transact-sql?view=sql-server-2017)
【讨论】:
以上是关于newsequentialid、scope_identity 和@@identity 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
使用 SQL Server 的 uniqueidentifier 字段类型