Générer le numéro de command

J'ai une exigence que j'ai besoin de générer un numéro de command qui devrait être montré à l'user avant de donner la command.

Je pensais utiliser la colonne d'identité de la database, mais ce n'est pas correct comme le dit MSDN

Faites attention à l'utilisation de IDENT_CURRENT pour prédire la prochaine valeur d'identité générée. La valeur générée réelle peut être différente de IDENT_CURRENT plus IDENT_INCR en raison d'insertions effectuées par d'autres sessions.

Dois-je créer une autre colonne pour le numéro de command, mais ici, je dois gérer l'unicité de l'identifiant de la command.

Alors quelle serait la meilleure alternative pour le faire.

A quel moment avez-vous besoin de générer le numéro de command? J'ajoute habituellement l'logging de la command à la database et récupère l'ID atsortingbué à cette ligne. Cela serait alors utilisé comme numéro de command, peut-être en le remplissant à un nombre particulier de numbers ou en ajoutant des caractères alpha au recto. Par exemple, une ligne ajoutée avec l'ID 42 peut être formatée comme le numéro de command "ORD000042".

append un champ appelé "OrderNumber" au niveau de la table client et par défaut à 0 (en supposant que chaque client n'a pas encore de command)

Lors de la création d'une nouvelle command, vous pouvez append l'ID de la command en tant que (Lettre O + ID client + Numéro de command +1) et en enregistrant la command, incrémenter de 1 le numéro de command dans la table client pour le client donné

Exemple:

 table customer(cid,name,...,orderNumber) table order(oid,cid,total,date,code) on creating new order => code= ssortingng.Format("O{0}-{0:0000}",cid,orderNumber+1) on saving the order => update customer set orderNumber=orderNumber+1 where cid=*customer id* 

De cette façon, vous pouvez suivre toutes les commands par client, par exemple le client 100 a 3 commands => le nouveau code de command sera O100-00004

et le client 109 qui a déjà 15 commands => le nouveau code de command sera O109-00016

etc

Cordialement