加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 16:16:02 所属栏目:MsSql教程 来源:网络整理
导读:在Oracle中有一种生成序列号的机制,例如 CREATE SEQUENCE supplier_seq MINVALUE 1 MAXVALUE 999999999999999999999999999 START WITH 1 INCREMENT BY 1 CACHE 20; 然后执行语句 supplier_seq.nextval 检索下一个序列号. 您将如何在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?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读