SQL Server 获取未使用ID的列表

t0ybt7op  于 2022-11-21  发布在  其他
关注(0)|答案(1)|浏览(171)

我们 有 一 个 名 为 * * Article * * 的 当前 表 :
| 标识 符|姓名|
| - -| - -|
| 一 个|文章|
| 2 个|文章 _ b|
| 三 个|文章 _ c|
id 是 一 个
它 非常 重要 的 是 , 相似 的 文章 有 非常 相似 的 ID , 所以 我 的 客户 希望 看到 所有 可能 的 ( 目前 未 使用 ) ID 号 列表 , 当 他 创建 一 个 新 的 文章 记录 。 这样 他们 就 可以 看到 一 个 范围 , 适合 当前 的 文章 创建 。
如何 在 SQL Server 中 执行 此 操作 ?

bis0qfac

bis0qfac1#

一 种 可能 的 解决 方案

Declare @YourTable Table ([id] int,[name] varchar(50))  Insert Into @YourTable Values 
 (1,'aaa')
,(2,'bbb')
,(3,'ccc')
,(25,'ddd')
,(50,'eee')

Select R1 = min(N)
      ,R2 = max(N)
 From  (
        Select N
              ,Grp = N-row_number() over (order by N)
         From  (
                Select Top 99999 N=Row_Number() Over (Order By (Select NULL)) 
                 From  master..spt_values n1, master..spt_values n2
               ) src
         where not exists (Select 1 from  @YourTable where N=id)
       ) A
 Group By Grp

中 的 每 一 个

    • 可用 ID 的 结果 * *
R1  R2
4   24
26  49
51  99999

格式

    • 备注 : * *

Subquery A 将 为 您 提供 一 个 开放 ID 的 长 列表

相关问题