gpt4 book ai didi

sql-server - Oracle 序列但随后在 MS SQL Server 中

转载 作者:行者123 更新时间:2023-12-04 11:17:27 25 4
gpt4 key购买 nike

在 Oracle 中有一种生成序列号的机制,例如;

CREATE SEQUENCE supplier_seq

MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;

然后执行语句
supplier_seq.nextval

检索下一个序列号。

您将如何在 MS SQL Server 中创建相同的功能?

编辑:我不是在寻找自动为表记录生成键的方法。我需要生成一个唯一值,我可以将其用作进程的(逻辑)ID。所以我需要 Oracle 提供的确切功能。

最佳答案

没有完全匹配。

等效项是 IDENTITY,您可以在创建表时将其设置为数据类型。 SQLSERVER 将在插入期间自动创建一个运行序列号。
最后插入的值可以通过调用 SCOPE_IDENTITY() 或通过查询系统变量@@IDENTITY 获得(如 Frans 所指出的)

如果您需要精确的等效项,则需要创建一个表,然后编写一个过程来重新调整下一个值和其他操作。请参阅 Marks 对陷阱的回应。

编辑:
SQL Server 已经实现了类似于 Oracle 的 Sequence。有关更多详细信息,请参阅此问题。

How would you implement sequences in Microsoft SQL Server?

关于sql-server - Oracle 序列但随后在 MS SQL Server 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/661998/

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