sql-server – Oracle序列,然后在MS SQL Server中

前端之家收集整理的这篇文章主要介绍了sql-server – Oracle序列,然后在MS SQL Server中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在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所指出)获得的.

如果您需要完全相同的值,则需要创建一个表,然后编写一个过程来重新调用下一个值和其他操作.看到马克对这个陷阱的回应.

编辑:
sql Server已经实现了类似于Oracle的Sequence.请参考这个问题了解更多细节.

How would you implement sequences in Microsoft SQL Server?

猜你在找的MsSQL相关文章