SQL Server 问题

一张表,ID为主键,为自动增长。增长值为1.第一次我往里面插入10条说句。ID值为1-10;然后,我用DELETE语句,将里面的数据删除。再次向里面插入10条数据,可ID... 一张表 , ID为主键,为自动增长。 增长值为 1.
第一次我往里面插入10条说句。 ID 值 为 1-10;
然后 , 我用DELETE 语句,将里面的数据删除。
再次向 里面 插入10条数据, 可 ID 值 却 为 11-20;
这是为何, 前面 10 条数据我不是删除了么? 怎么再次插入 , ID 值 确实从 11开始,而非1开始。难道 前面删除10条语句时 并没有 把 ID默认值 删除?
展开
 我来答
0808xyj
2014-10-10 · TA获得超过1891个赞
知道大有可为答主
回答量:1237
采纳率:100%
帮助的人:1079万
展开全部
SQL Server 2005表自增字段在多次插入数据后,自增的ID号比较混乱,而且删除数据后,自增的ID并不会归零,有两种方法可以控制自增的字段:
方法一: 如果曾经的数据都不需要的话,可以直接清空所有数据,并将自增字段恢复从1开始计数 truncate table table_name(表名)
方法二: DBCC CHECKIDENT (''table_name'', RESEED, new_reseed_value) 当前值设置为 new_reseed_value。如果自创建表后没有将行插入该表,则在执行 DBCC CHECKIDENT 后插入的第一行将使用 new_reseed_value 作为标识。否则,下一个插入的行将使用 new_reseed_value + 1。如果 new_reseed_value 的值小于标识列中的最大值,以后引用该表时将产生 2627 号错误信息。 不会清空已有数据,操作比较灵活,不仅可以将自增值归零,也适用于删除大量连续行后,重新设置自增值并插入新的数据;或从新的值开始,当然不能和已有的冲突。
匿名用户
2014-10-10
展开全部
sqlserver中设置主键自动增长的策略是:有系统维护一个变量记录当前表格已经插入的值,虽然你删除了记录,但是这个变量的值并不会改变,他还是记录有这么多条数据插入过,下次你继续插入数据的时候,id继续增长。你可以手动设置主键增长嘛,或者利用触发器。这个链接里面就有说明:http://zhidao.baidu.com/question/302975984.html,希望能够帮到你。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式