Penso che dalla domanda tu stia cercando il prossimo disponibile, anche se potrebbe non essere lo stesso di max+1 giusto? - In tal caso:
Inizia con un elenco di numeri interi e cerca quelli che non sono presenti nella colonna groupid, ad esempio:
;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
Nota:devi modificare il 2001/4000
valori nel CTE per consentire l'intervallo desiderato. Ho assunto il nome del tuo tavolo da MyTable