Immaginiamo che avete ottenuto una violazione di vincolo indice univoco nel MSSQL 2008 del database come questo:Bisogno di un modo per intercettare solo un'eccezione chiave duplicata MSSQL
Violation of PRIMARY KEY constraint 'PK_ManufacturerCode'. Cannot insert duplicate key in object 'dbo.ManufacturerCode'. The duplicate key value is (8410179)
Attualmente sto manipolazione di questo un'eccezione da una globale gestore di eccezioni in un thick client (scritto in Delphi 6 usando ADO, ma non importa, prevedo di usare C# .NET in futuro) e il messaggio di eccezione viene aggiunto ad una casella di log.
Ma voglio gestire personalmente questa specifica chiave duplicata e visualizzare un messaggio di errore appropriato in un client utilizzando il proprio testo del client spesso. Ho potuto analizzare il messaggio di errore per partita, ma non voglio fare questo per due motivi:
- Questo non è un modo giusto per fare la cosa - è meglio fare affidamento su alcuni codici di errore;
- La thick client ha lo scopo di utilizzare varietà di versioni server MSSQL in diverse lingue che possono avere diversi testi di errore
Non mi rallegrare per fare il lavoro con i ritorni con i codici di uscita personalizzato o costantemente chiamare un stored procedure speciali per verificare la presenza di duplicati.
La tua risposta mi sembra buona, ma ... potrei rilevare in questo modo quale violazione di colonna si è verificata? – Learner