数据库中自动递增列问题
数据库里自动递增列,怎样在删除记录后,仍从1开始计数?
假如用truncate table后
提示该表正由 FOREIGN KEY 约束引用。
[解决办法]
--使用dbcc checkident检查和设置表的标识值create table tb( id int primary key identity, name varchar(50)) insert into tb select 'a' union all select 'b' union all select 'c' union all select 'd'go dbcc checkident(tb,noreseed)godelete from tb where id>2go--删除记录后,表tb只剩下两条记录了,但是此时表tb的标识值仍为4,可以用下面的语句重置标识值为2dbcc checkident(tb,reseed,2)godbcc checkident(tb,noreseed)goselect * from tbdrop table tb
[解决办法]
DBCC CHECKIDENT ('表名', RESEED, 0)
参考:
http://www.cnblogs.com/UouHt/archive/2008/11/26/1341667.html
[解决办法]
FOREIGN KEY 约束引用说明你要删除的这个表有外键,也就是该表主键做外其他表的外键了,所以不能删除。你要么修改该外键约束允许级联删除,要么先把相关表相关记录删除,再回过头来TRUNCATE这张表。