gpt4 book ai didi

sql-server - 顺序 NEWID()

转载 作者:行者123 更新时间:2023-12-01 08:20:09 27 4
gpt4 key购买 nike

我使用的是 sql server 2008。有没有办法生成唯一的序列号?它应该展示 NEWID() 和标识列的属性,这意味着它始终是唯一的,但每个后续值都大于前一个值。它不能是 datetime/datetime2,因为它不够独特。

谢谢。

最佳答案

CREATE TABLE demo_table (
demo_id uniqueidentifier NOT NULL,
demo_value int
);

ALTER TABLE demo_table ADD CONSTRAINT dc_demo
DEFAULT NEWSEQUENTIALID()
FOR demo_id;

您必须对顺序唯一标识符使用默认约束。

不幸的是, NEWSEQUENTIALID() 的限制就是不保证机器重启后的顺序。

NEWSEQUENTIALID()的主要目的是快速插入 B 树 ,并且机器重启问题不影响此。这是记录在这里:
  • MSDN: NEWSEQUENTIALID() (Transact-SQL)
  • NEWSEQUENTIALID() is Not Sequential

  • 您可以查看这篇关于 NEWID() 之间的性能比较的文章。 , NEWSEQUENTIALID()IDENTITY :“ The Code Project: Performance Comparison - Identity() x NewId() x NewSequentialId”。

    关于sql-server - 顺序 NEWID(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1892919/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com