有没有办法在SQL Server中创建一个唯一的序列
select <sequence>.nextval from dual
我们有上面的Oracle代码,它将创建一个唯一的号码,而且这个号码不能被任何其他号码使用。
以同样的方式,如何在SQL Server ????
中创建唯一的序列号有人帮助我
答案 0 :(得分:1)
SQL Server 2012中正在添加序列 - 但目前还没有完全发布。如果你想提前试用它们,产品的发布候选者会有它们。
如果序列仅由单个表使用,则可以使用标识列功能,该功能允许您指定起始编号和每个记录添加的值。
如果您正在寻找可以在多个表中使用的序列,则需要在SQL Server中创建一个专用表,该表具有一个标识字段列 - 并且只要您想要.nextval,你会在表格中插入一行来获得一个新的数字。表比行为更像一个序列。该表将随着时间的推移而填满,不需要在表中保留记录,标识存储它的当前值和增量以获得系统表上的下一个值。
答案 1 :(得分:0)
只有即将推出的SQL Server 2012支持sql标准符合序列对象。 :-(在任何当前版本的SQL Server(2008 R2及以下版本)中,您必须使用具有身份约束的列,如下所示:
CREATE TABLE t1
(
id int identity(1,1),
somecol varchar(50)
);
这将在id列中生成以1开头的值,并以1为步长递增。