首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

数据库中自动递增列有关问题

2012-06-22 
数据库中自动递增列问题数据库里自动递增列,怎样在删除记录后,仍从1开始计数?假如用truncate table后提示

数据库中自动递增列问题
数据库里自动递增列,怎样在删除记录后,仍从1开始计数?

假如用truncate table后

提示该表正由 FOREIGN KEY 约束引用。

[解决办法]

SQL code
--使用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这张表。

热点排行