如何在SQL Server 2008中重新生成表格标识并将其全部撤销?

我只需要做这个testing,但是在testing完成后就可以撤消它。

我已经在网上看到了一些关于如何重新build立表格的教程,但是并没有在如何撤消它。

假设表格定义如下:

create table beer ( beer_id numeric(10) not null, mnemonic nvarchar(8) ); go 

假设我想让新身份暂时从12345开始,并在最后删除新行并将下一个身份设置为原来的身份。

重置身份属性的命令是

 DBCC CHECKIDENT (tablename, RESEED, new_reseed_value) 

当你想设置列标识为12345你运行这个

 DBCC CHECKIDENT (beer, RESEED, 12345) 

如果要删除testing行并将值恢复为以前的值,请执行以下操作。

 DELETE FROM beer WHERE beer_id >= 12345 ; DECLARE @NewSeed NUMERIC(10) SELECT @NewSeed = MAX(beer_id) FROM beer ; DBCC CHECKIDENT (beer, RESEED, @NewSeed) 

这里是你的场景演示。 请注意,beer_id列是使用IDENTITY (1, 1)属性创build的,该属性以1为增量将标识种子为1。

 CREATE TABLE beer ( beer_id NUMERIC(10) IDENTITY (1,1) NOT NULL, mnemonic NVARCHAR(8) ); GO INSERT INTO beer(mnemonic) VALUES ('Beer 1') INSERT INTO beer(mnemonic) VALUES ('Beer 2') SELECT * FROM beer ; DBCC CHECKIDENT (beer, RESEED, 12345) GO INSERT INTO beer(mnemonic) VALUES ('Beer 3') INSERT INTO beer(mnemonic) VALUES ('Beer 4') SELECT * FROM beer ; DELETE FROM beer WHERE beer_id >= 12345 ; DECLARE @NewSeed NUMERIC(10) SELECT @NewSeed = MAX(beer_id) FROM beer ; DBCC CHECKIDENT (beer, RESEED, @NewSeed) GO INSERT INTO beer(mnemonic) VALUES ('Beer 5') INSERT INTO beer(mnemonic) VALUES ('Beer 6') SELECT * FROM beer ;