是否可以让表中的ID顺序递增?

xmvb 2003-10-09 10:33:56
表中有一ID标识列,从1开始,递增量为1,现有三条记录,ID分别是1 2 3,如果我删除第三条记录,再增加一条记录,这条记录ID是4,是否可以让新增的这条记录的ID是3?
...全文
52 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xmvb 2003-10-09
  • 打赏
  • 举报
回复
谢谢各位,SQL-SERVER论坛的人是最热心的!
aierong 2003-10-09
  • 打赏
  • 举报
回复


你是要找id列最小未用值吗

给你一个参考

create table ai(id int identity(1,1),ii int)
insert into ai(ii) select 1
insert into ai(ii) select 2
insert into ai(ii) select 3
select * from ai
delete from ai where ii=3
select * from ai
go
declare @n int
select @n=max(id)+1 from ai
select isnull(min(ids),@n) from (
select (select count(id)+1 from ai where id<a.id) as ids,*
from ai as a) as u
where ids<>id


bxq2008 2003-10-09
  • 打赏
  • 举报
回复
可以用触发器,一旦有几行数据删除,那么自动删除ID列,然后再加上就可以了!
pengdali 2003-10-09
  • 打赏
  • 举报
回复
写一个函数,放在默认值里:
create function getNumber()
returns int
as
begin
declare @a int
select @a=isnull(max(字段),0)+1 from 表
return (@a)
end
go

你在你的表里的那个字段的默认值里写:
dbo.getNumber()
txlicenhe 2003-10-09
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2216/2216344.xml?temp=.9445764
txlicenhe 2003-10-09
  • 打赏
  • 举报
回复
1:那就不能用标识列
2:

如何用语句添加或去除表字段的自增属性
http://expert.csdn.net/Expert/topic/2217/2217137.xml?temp=.8302118

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧