Wednesday 15 May 2013

sql server - How to prevent a child record from being deleted -



sql server - How to prevent a child record from being deleted -

when delete master record cascade trigger fired , delete records in kid tables. , cannot delete record manually table got foreign key relation kid table.

but how can prevent kid record beingness deleted manually table. able delete kid record manually , on page loads kid record missing , page load fails.

i'm bit unclear why you'd want have done. don't allow deletion of kid records on ui aside cascade delete - don't give user option.

if you're worried random dba going in database , writing:

delete childtable parentid = 5 -- or whatever

then think have more things worry about... such why people production database write access thinking manually writing , executing statements such on prod database.

if still really needed this. potentially write before delete trigger on of kid tables ensure parentid doesn't exist in parent table prior delete. likely cause cascade delete fail (i guess) need update cascade delete functionality disable trigger before deletion, re-enabling trigger after. not prevent "random dba" doing similar disabling trigger, deleting record, , re-enabling.

if provide little more info around specific scenarios of why kid record "manually" deleted, might able offer more.

sql-server

No comments:

Post a Comment