SQL 2005 自增序列 如何清零?

sunboy_163 2010-10-18 04:52:40
系统开发了,把所有数据删除了,但所有表序表不是从1开始的。想着把所有表序列清零,干干净净的。

rt~~~

...全文
542 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
飞尘 2011-09-24
Truncate table tablename比较简单实用
回复
sunboy_163 2010-10-18
如何清除字段说明呀?
回复
dawugui 2010-10-18
[Quote=引用 5 楼 bancxc 的回复:]
truncate table tablename只是清除记录,不是让自增列归零.
难道我记错了
truncate
不触发触发器
不记日志
identity清零
[/Quote]
是我记错了.

SQL Server 自增字段归零

SQL Server 2005表自增字段在多次插入数据后,自增的ID号比较混乱,而且删除数据后,自增的ID并不会归零,有两种方法可以控制自增的字段:

方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数

truncate table 表名

方法二: dbcc checkident ('table_name', reseed, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。

方法二不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。

当表中有了一下数据后
执行语句 DBCC CHECKIDENT ('dbo.Person', RESEED, 10) 后再通过Management Studio添加数据时,ID就会自动从11开始,也就是new_reseed_value+1开始
回复
bancxc 2010-10-18
[Quote=引用 4 楼 dawugui 的回复:]

引用 1 楼 bancxc 的回复:
truncate table tablename

truncate table tablename只是清除记录,不是让自增列归零.
[/Quote]难道我记错了
truncate
不触发触发器
不记日志
identity清零
回复
dawugui 2010-10-18
[Quote=引用 1 楼 bancxc 的回复:]
truncate table tablename
[/Quote]
truncate table tablename只是清除记录,不是让自增列归零.
回复
sunboy_163 2010-10-18
[Quote=引用 1 楼 bancxc 的回复:]
truncate table tablename
[/Quote]

顺便在问下你,能不能把表所有字段备注说明也一起删除了?
回复
sunboy_163 2010-10-18
[Quote=引用 1 楼 bancxc 的回复:]
truncate table tablename
[/Quote]

想马上结贴,还结不了。稍后晚上给你结分~~
回复
bancxc 2010-10-18
truncate table tablename
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2010-10-18 04:52
社区公告
暂无公告