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

SQL Server 2008:INSERT, ако не излиза, поддържайте уникална колона

Лудост е да нямаш индекс.

Би помогнало, но дължината на индексния ключ може да бъде само 900 байта.

Вероятно е обаче вече да имате дубликати, защото потенциалът 2-ри EXISTS да се изпълнява след 1-ви EXISTS, но преди 1-ви INSERT.

Създаването на индекс ще ви каже и впоследствие ще защити срещу това.

Можете обаче да получите грешки при голямо натоварване.

Моят предпочитан подход за високи вложки/ниски дубликати е JFDI моделът. Много едновременно

BEGIN TRY
   INSERT etc
END TRY
BEGIN CATCH
    IF ERROR_NUMBER() <> 2627
      RAISERROR etc
END CATCH



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008:как да дам привилегии на потребителско име?

  2. COUNT(DISTINCT) в множество колони в SQL Server 2008

  3. Прекомпилиране на съхранени процедури?

  4. Как да извлека данни от база данни на SQL Server в C#?

  5. SQL Server:Как да изберете всички дни в диапазон от време, дори ако няма данни за няколко дни