Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak uniknąć zduplikowanych wartości w SQL Server

Zakładamy, że masz SQL Server 2012 (proszę wyjaśnić)

Nie jest to kompletna odpowiedź, ale mogę ją rozszerzyć, jeśli chcesz.

Najpierw utwórz sekwencję (po prostu uruchom ją raz):

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

teraz pobierz z niego następną sekwencję (uruchom to tak często, jak chcesz):

select next value for CustomerCare

Ta metoda nie może przekazać tej samej liczby dwóm różnym żądaniom, więc nie otrzymasz duplikatów. Automatycznie zawinie się, gdy osiągnie 350. Możesz tworzyć i używać sekwencji dla innych grup. O wiele prostsze niż inne rozwiązanie i w 100% niezawodne.

Ponownie muszę odradzać tworzenie magicznych zakresów liczb dla określonych grup.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyszukiwanie obiektów bazy danych i danych tabel w SQL Server

  2. Tworzenie kolumny wyliczanej w SQL Server 2008

  3. Wykonywanie przygotowanych instrukcji generowanych przez NHibernate w SQL Server Management Studio

  4. Użyj @@IDENTITY, aby zwrócić ostatnio wstawioną wartość tożsamości w programie SQL Server

  5. Jak zrobić rozróżnianie wielkości liter GROUP BY?