Pouvez-vous préciser pourquoi vous en avez besoin? Il semble qu'il pourrait y avoir une meilleure façon de satisfaire le besoin global.
Cependant, si vous avez besoin est le numéro suivant dans la séquence, alors cela devrait fonctionner:
SELECT MAX(ID) + 1 FROM Table
Edit: Je viens de remarquer de la réponse de Thomas (et re-inspection de la question) que Il semble que vous cherchiez le premier écart, qui peut être le numéro suivant ou non. Mais je suppose que le point global reste encore ... pourquoi?
Éditer: Je suis heureux que vous ayez accepté une réponse, mais je pense toujours qu'il y a plus à cela. Par exemple, si vous voulez juste "réserver" un identifiant, il y a plusieurs façons d'y parvenir.
Les GUID conviennent aux ID générés par une application, mais ne doivent pas être utilisés comme clés primaires pour des raisons de performances. Vous pouvez avoir une deuxième colonne en tant que GUID et l'utiliser dans votre application, ce qui permet à une simple colonne d'auto-incrémentation d'être la clé primaire. Il y a d'autres considérations de performance à faire, et vous devriez le rechercher. Inversement, il existe un élément appelé Hi/Lo Algorithm pour réserver des plages d'ID de base de données. Il utilise des entiers, qui sont parfaits pour l'indexation et faire de grandes clés primaires. Il laisse des espaces dans la séquence, mais il faut s'y attendre de toute façon, même avec une colonne générée automatiquement (par exemple, lorsqu'un enregistrement est supprimé).
S'il y a une exigence selon laquelle il ne devrait pas y avoir de lacunes dans les identificateurs, cela ressemble à un besoin commercial étrange et devrait être analysé pour ses véritables besoins. Quelque chose comme ça ne devrait pas déborder dans la clé primaire de votre persistance des données.
Vous voulez (plus haut + 1) ou premier écart? – gbn
Et vous ne voulez pas utiliser et la colonne Identité parce que ... –