Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да избегнете дублиращи се стойности в SQL Server

Това предполага, че имате SQL Server 2012 (моля, пояснете)

Не е пълен отговор, но мога да разширя, ако желаете.

Първо създайте последователност (просто изпълнете това веднъж):

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

сега вземете следващата последователност от него (изпълнете това толкова често, колкото искате):

select next value for CustomerCare

Този метод не може да раздаде един и същ номер на две различни заявки, така че няма да получите дубликати. Той автоматично ще се обвие, когато достигне 350. Можете да създавате и използвате последователности за другите си групи. Много по-просто от другото решение и 100% надеждно.

Отново трябва да ви посъветвам да не създавате диапазони с магически числа за конкретни групи.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да предам XML от C# към съхранена процедура в SQL Server 2008?

  2. JSON_VALUE() Примери в SQL Server (T-SQL)

  3. Разлика между конвертирането на дата и час в MSExcel и SQL Server

  4. Как да предотвратите вмъкването на дублиращи се записи с SqlBulkCopy, когато няма първичен ключ

  5. Как да изведете всички чужди ключове с WITH NOCHECK в SQL Server