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

Posso verificare la presenza di vincoli prima di un'eliminazione in SQL Server?

Questa è una domanda che in apparenza sembra buona, ma ha delle implicazioni.

Prima di tutto, dovresti assicurarti che dopo aver letto lo stato di quelle relazioni, nessuno possa modificarle, quindi ovviamente devi utilizzare una transazione e bloccare le righe in questione.

Quindi hai bisogno di un modo per capire quali relazioni controllare, poiché vedo in un commento qui la tua domanda su cosa succede se qualcuno in seguito aggiunge una nuova relazione. Quindi devi interrogare lo schema, o forse generare automaticamente questo codice dallo schema, in modo che il meccanismo di rilevamento debba essere eseguito solo ogni volta che modifichi lo schema.

Ora, l'eccezione che ottieni sembra davvero così costosa dopo questa prova?