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 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Java中的奇怪符号用Java表示

SQLSERVER如何使用递增排序的GUID做主键

使用 SQL Server 的 uniqueidentifier 字段类型

数据库项目中的批量更改列默认值

是否应该使用 USE/FORCE INDEX 更改 MySQL 查询中的 EXPLAIN 输出?

实体框架代码优先:迁移失败并更新数据库,强制不必要的(?)添加迁移