Mettre à jour la colonne d'identité pour conserver un numéro unique

Nous avons une table pour maintenir le prochain numéro unique disponible pour un cas d'utilisation spécifique dans notre application. Nous avons pensé à avoir une colonne de type bigint qui sera incrémentée et fournira le prochain numéro disponible. Est-il possible de faire de cette colonne une colonne d'identité et d'auto-incrémenter la même ligne?

J'ai trouvé un lien sur stackoverflow Utilisation de Table avec une seule colonne (Identity)? avec des exigences similaires. Cependant, la solution mentionnée insertait un nouvel logging dans la table. Au lieu d'insert, je voudrais faire une mise à jour sur le même logging pour suivre le prochain numéro unique disponible.

Est-il possible de tirer parti de la fonctionnalité de colonne Identité ou je devrais extraire la valeur actuelle, l'incrémenter explicitement et la stocker dans la même ligne dans la même colonne?

Je crée une procédure stockée pour démarrer une transaction, incrémente le bigint stocké (pas une identité) et renvoie la nouvelle valeur, en annulant la transaction si quelque chose ne va pas.

La section de mise à jour du SP serait comme (ne peut pas tester atm):

DECLARE @RET TABLE (Value BigInt) UPDATE Mytable SET MyField += 1 OUTPUT inserted.MyField INTO @RET IF (SELECT MAX(Value) FROM @RET) > 0 RETURN (SELECT MAX(Value) FROM @RET) 

Déclaration OUTPUT

Cela ferait seulement 1 écrire dans la table et returnner la nouvelle valeur. La vérification de la valeur returnnera la dernière valeur émise.

Pas tout à fait sûr de ce que vous essayez d'accomplir. Croyez votre juste après un identy ajoutant ie

 CREATE TABLE #Temp (rowName BIGINT IDENTITY(1,1) NOT NULL) 

Cela créerait une table avec une colonne appelée rowName qui incrémente automatiquement de un.