Je pense que d'après la question, vous recherchez le prochain disponible, bien que ce ne soit peut-être pas la même chose que max + 1, n'est-ce pas? - Dans ce cas :
Commencez par une liste d'entiers et recherchez ceux qui ne figurent pas dans la colonne groupid, par exemple :
;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
Remarque :vous devez modifier le 2001/4000
valeurs dans le CTE pour permettre la plage souhaitée. J'ai supposé le nom de votre table par MyTable