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

Verifica della violazione della regola di integrità referenziale prima dell'eliminazione

Ci sono alcune potenziali opzioni che mi vengono in mente:

  • Imposta eliminazioni a catena nel database in modo che un'eliminazione riesca sempre.
  • Controlla i record correlati con SELECT prima di eliminare. Ciò richiede che l'applicazione conosca i vincoli.
  • Un buon modello di dominio (classi aziendali) dovrebbe consentire all'applicazione di essere a conoscenza dei record correlati.
  • Un O/R Mapper, come NHibernate, può essere utilizzato per definire operazioni di eliminazione a cascata.
  • Utilizzare SMO (Microsoft.SqlServer.Smo) per ispezionare lo schema del database per le relazioni, quindi verificare la presenza di record correlati esistenti. Non so se è possibile.