能否用sql语句实现,想要取得表中所有的不连续的id值,原来是

marysxj 2005-06-30 10:41:47
自动加1的(表名zjb),但是删除部分数据后,导致部分数据的id没有充分利用,得到这些值之后,需要存放到另外的一个临时表temp内。
注意:zjb的id值不是从1开始的,具有指定起始值。
另外,如果表内的数据量达到上万条,执行速度如何?

...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
marysxj 2005-06-30
  • 打赏
  • 举报
回复
非得用临时表来解决吗?
子陌红尘 2005-06-30
  • 打赏
  • 举报
回复
set rowcount 20000
select identity(int,指定起始值,1) as id into #t from sysobjects a,sysobjects b
set rowcount 0

select
a.id
into #t1
from
#t a
where
not exists(select 1 from zjb where id = a.id)
and
a.id<(select max(id) from zjb)

select id from #t1
lalakid 2005-06-30
  • 打赏
  • 举报
回复
为什么要改变ID,这样做不好,因为很可能有很多其他表根据这个ID进行关联,建议不要这样做,什么叫浪费,中间ID没有用,那是你删除了,并不是浪费了.

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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