Sai cosa significa "cancellazione graduale"? Significa che ogni operazione di "cancellazione" verrà convertita in SQL che imposta solo alcuni deleted
contrassegnare su true
. E se inserirai un'altra riga con lo stesso valore del campo univoco che ha una riga eliminata temporaneamente, riceverai questo messaggio.
Hai due modi per risolvere questo problema:
- Rendi il tuo indice univoco con due colonne:il tuo campo univoco originale e
deleted
bandiera. Quindi riceverai questo errore solo quando tenti di aggiungere una riga con i valori dei campi univoci esistenti solo per non eliminati temporaneamente. - Evita di commettere questa violazione:dovresti escludere la possibilità di aggiungere una riga che ne duplica un'altra in campi univoci.
Il secondo è l'approccio migliore IMHO.