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

SQL Server 2008:INSERT, jeśli nie wychodzi, zachowaj unikalną kolumnę

To szaleństwo nie mieć indeksu.

Pomogłoby, ale długość klucza indeksu może wynosić tylko 900 bajtów.

Jednak prawdopodobnie masz już duplikaty, ponieważ druga ISTNIEJE po pierwszej ISTNIEJE, ale przed pierwszą INSERT.

Utworzenie indeksu poinformuje Cię o tym, a następnie zabezpieczy przed tym.

Jednak przy dużym obciążeniu mogą wystąpić błędy.

Moim ulubionym podejściem do wysokich wstawek/niskich duplikatów jest wzorzec JFDI. Wysoce współbieżny

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. Problem we wdrażaniu projektu DB

  2. SSIS Jak uzyskać część ciągu za pomocą separatora

  3. Jak mogę wykonać kopię zapasową zdalnej bazy danych SQL Server na dysku lokalnym?

  4. Jak uzyskać plan wykonywania zapytań w programie SQL Server?

  5. Sprawdź, czy tabela ma DEFAULT ograniczenie w SQL Server za pomocą OBJECTPROPERTY()