質問からすると、次の利用可能なものを求めていると思いますが、それは max+1 と同じではないかもしれませんよね? - その場合:
整数のリストから始めて、groupid 列にないものを探します。例:
;WITH CTE_Numbers AS ( SELECT n = 2001 UNION ALL SELECT n + 1 FROM CTE_Numbers WHERE n < 4000 ) SELECT top 1 n FROM CTE_Numbers num WHERE NOT EXISTS (SELECT 1 FROM MyTable tab WHERE num.n = tab.groupid) ORDER BY n
プレ>注:
2001/4000
を微調整する必要があります 必要な範囲を可能にする CTE の int 値。MyTable
であなたのテーブルの名前を想定しました