如何在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 ;