Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So vermeiden Sie doppelte Werte in SQL Server

Dies setzt voraus, dass Sie SQL Server 2012 haben (bitte klären)

Keine vollständige Antwort, aber ich kann sie erweitern, wenn Sie möchten.

Erstellen Sie zuerst eine Sequenz (nur einmal ausführen):

create sequence CustomerCare 
    as integer
    start with 51
    increment by 1
    minvalue 51
    maxvalue 350
    cycle;

holen Sie sich nun die nächste Sequenz daraus (führen Sie diese so oft aus, wie Sie möchten):

select next value for CustomerCare

Diese Methode kann nicht dieselbe Nummer an zwei verschiedene Anfragen weitergeben, sodass Sie keine Duplikate erhalten. Es wird automatisch umgebrochen, wenn es 350 erreicht. Sie können Sequenzen für Ihre anderen Gruppierungen erstellen und verwenden. Viel einfacher als die andere Lösung und 100 % zuverlässig.

Auch hier muss ich davon abraten, magische Nummernkreise für bestimmte Gruppen zu erstellen.