Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come evitare valori duplicati in SQL Server

Ciò presuppone che tu abbia SQL Server 2012 (chiarire)

Non una risposta completa ma posso ampliare se lo desideri.

Per prima cosa crea una sequenza (eseguila una volta):

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

ora prendi la sequenza successiva da essa (eseguilo tutte le volte che vuoi):

select next value for CustomerCare

Questo metodo non può distribuire lo stesso numero a due richieste diverse in modo da non ricevere duplicati. Si avvolgerà automaticamente quando arriva a 350. Puoi creare e utilizzare sequenze per gli altri tuoi raggruppamenti. Molto più semplice dell'altra soluzione e affidabile al 100%.

Ancora una volta ho bisogno di sconsigliare la creazione di intervalli di numeri magici per gruppi specifici.