sequence 要到 sql servler2012 的版本, 才有。
SQL Server 2000, 2005, 2008 是没有 sequence 这样的对象的。
如果你要实现一个 自动递增列的处理
SQL Server 通过 IDENTITY 来设置
参数有2个,一个是“初始值” 一个是“增量”。
默认情况下 INSERT 语句中,不能对 IDENTITY 的字段进行赋值。
对于 IDENTITY 的列 SQL Server 在 INSERT 的时候,会自动忽略掉。
当IDENTITY列中间的数据被删除,造成数据不连续的时候。可以通过 SET IDENTITY_INSERT 表名 ON/OFF 语句来 允许/禁止 对IDENTITY列进行显式的插入动作。
IDENTITY只能在如下情况下建立:
在创建表时创建新的IDENTITY列
在现有表中创建新的IDENTITY列
不能 把已经存在的列,修改为IDENTITY列
1> CREATE TABLE test_create_tab2 (
2> id INT IDENTITY(1, 1) PRIMARY KEY,
3> val VARCHAR(10)
4> );
5> go
1> INSERT INTO test_create_tab2(val) VALUES ('NO id');
2> go
(1 行受影响)
SQL2000中不存在序列一说,有自动编号,将列设置成“标识”即可,插入时会自增。
序列一般在ORACLE中才有。