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?