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

SQL Server 2008:INSERT se non esce, mantiene la colonna univoca

È una follia non avere un indice.

Aiuterebbe, ma la lunghezza della chiave dell'indice può essere solo di 900 byte.

Tuttavia, è probabile che tu abbia già dei duplicati perché è possibile che un 2° EXISTS venga eseguito dopo il 1° EXISTS ma prima del 1° INSERT.

La creazione dell'indice te lo dirà e successivamente ti proteggerà da questo.

Tuttavia, puoi ricevere errori sotto carico pesante.

Il mio approccio preferito per inserti alti/duplicati bassi è il modello JFDI. Altamente simultaneo

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