sql server 数据库问题,表中一个字段编号设置自动编号字段,如何才能实现删除其中一条记录

自动生成的编号不会断码... 自动生成的编号不会断码 展开
 我来答
syx54
2013-03-19 · TA获得超过7378个赞
知道大有可为答主
回答量:6567
采纳率:83%
帮助的人:2686万
展开全部
删除了以后,该编号就断了!!!!

建议你尝试这个思路,类似于FoxBase的做法:
增加一个删除否的字段,当进行删除操作的时候,不是真正的删除,而是在这个字段里做上一个标记,做过删除标记的记录,查询时都隐藏掉。
然后,当新增加记录时,使用删除记录中最小的自动编号的记录,进行相应字段的修编辑修改,然后恢复它的删除标记为未删除。
仅供参考。
匿名用户
2013-03-19
展开全部
-- 表结构
1> CREATE TABLE test_create_tab2 (
2> id INT IDENTITY(1, 1) PRIMARY KEY,
3> val VARCHAR(10)
4> );
5> go

-- 插入数据的代码略

-- 当前数据
1> SELECT * FROM test_create_tab2;
2> go
id val
----------- ----------
1 NO id
2 A
3 B
4 C
5 D

(5 行受影响)

-- 删除一个数据,造成数据不连续.
1> DELETE FROM test_create_tab2 WHERE id = 3;
2> go

(1 行受影响)

-- 允许将显式值插入表的标识列中
1> SET IDENTITY_INSERT test_create_tab2 ON
2> go
1> INSERT INTO test_create_tab2(id, val) VALUES (3, 'id is use');
2> go

(1 行受影响)

--不允许将显式值插入表的标识列中
1> SET IDENTITY_INSERT test_create_tab2 OFF
2> go
1> SELECT * FROM test_create_tab2;
2> go
id val
----------- ----------
1 NO id
2 A
3 id is use
4 C
5 D

(5 行受影响)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lyx060204
2013-03-21 · TA获得超过136个赞
知道小有建树答主
回答量:172
采纳率:0%
帮助的人:118万
展开全部
不断号 是不可能的,如果你这里是主键的话,就会数据,如果 lz想实现 在页面中显示序号,可以采用其他方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
szm341
2013-03-19 · TA获得超过6726个赞
知道大有可为答主
回答量:5005
采纳率:100%
帮助的人:5108万
展开全部
自增列删除数据时一定会产生断码,不过倒是可以通过强制插入用新数据连带断码一起补上
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式