使用T-SQL脚本重置标识列的INCREMENT VALUE

时间:2017-05-16 16:34:35

标签: sql sql-server tsql sql-server-2012

我需要标识列的更改增量值

例如 我创建了带有标识列的表测试表

let headers = new Headers();
headers.append('Content-Type', 'application/json');

let options = new RequestOptions({ headers: headers });
return this.http.post(url, JSON.stringify(postdata), options).map(res => res.json());

现在可以使用

轻松重新设定Identity Column的起始值
Promise.using

但我想将增量值 1更改为10 是否有任何sql命令可以工作..

从SSMS 2016更改时,我收到此错误

enter image description here

1 个答案:

答案 0 :(得分:0)

要更改增量,您需要删除现有的identity()列并添加新列。

alter table test drop column Id;
alter table test add Id int identity(100,10);

如果要保留现有值,则需要创建新表,使用identity_insert on插入现有行,删除旧表,然后重命名新表。

例如:

create table test (id int identity(1,1), name varchar(200) default '')
insert into test default values
insert into test default values

create table new_test (id int identity(100,10), name varchar(200) default '');

set identity_insert new_test on;
  insert into new_test (id,name)
  select id,name from test
set identity_insert new_test off;

drop table test;

exec sp_rename 'new_test','test';

insert into test default values;
insert into test default values;

select * from test;

rextester演示:http://rextester.com/XDE9355

返回:

+-----+------+
| id  | name |
+-----+------+
|   1 |      |
|   2 |      |
| 100 |      |
| 110 |      |
+-----+------+