Answered by:
Find cascading deletes that effect a specific table

Question
-
I'm having problems with my SQL Server based application (C#/Winforms). On more than one occasion, a user has complained that a certain key record has deleted itself. After some investigation, it seems they are right - there are clues that the record once existed (one other table has referneces to the missing record). Also, it seems that this was not accidental deletion by a user (I have other functionality which would catch this out).
I'm now trying to work out if the record is being deleted at the SQL level. If somehow, by deleting a record from a related table, it had deleted a record from another table which it should not.
So, I'm looking for some way to investigate this. An easy way to point at a table, and query the system to tell me what events/triggers (like a cascading delete) could delete a record in this specific table?
Monday, March 11, 2013 1:57 AM
Answers
-
Check this query
SELECT C.* FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C WHERE DELETE_RULE = 'CASCADE'
For every expert, there is an equal and opposite expert. - Becker's Law
My blog- Proposed as answer by Just Karl Tuesday, March 12, 2013 9:10 PM
- Marked as answer by Kalman Toth Tuesday, March 12, 2013 9:24 PM
Monday, March 11, 2013 2:08 AM -
in sql server
right click on the tablename -> script table as -> create to -> New query editor window.
now you can see wether the table has any cascade delete or not
ESHANI. Please click "Mark As Answer" if a post solves your problem or "Vote As Helpful" if a post has been useful to you
- Marked as answer by fweeee Monday, March 11, 2013 10:53 AM
Monday, March 11, 2013 2:31 AM
All replies
-
Check this query
SELECT C.* FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C WHERE DELETE_RULE = 'CASCADE'
For every expert, there is an equal and opposite expert. - Becker's Law
My blog- Proposed as answer by Just Karl Tuesday, March 12, 2013 9:10 PM
- Marked as answer by Kalman Toth Tuesday, March 12, 2013 9:24 PM
Monday, March 11, 2013 2:08 AM -
in sql server
right click on the tablename -> script table as -> create to -> New query editor window.
now you can see wether the table has any cascade delete or not
ESHANI. Please click "Mark As Answer" if a post solves your problem or "Vote As Helpful" if a post has been useful to you
- Marked as answer by fweeee Monday, March 11, 2013 10:53 AM
Monday, March 11, 2013 2:31 AM -
in sql server
right click on the tablename -> script table as -> create to -> New query editor window.
now you can see wether the table has any cascade delete or not
ESHANI. Please click "Mark As Answer" if a post solves your problem or "Vote As Helpful" if a post has been useful to you
Thanks. This did the trick I think. I found a few which had "ON DELETE SET NULL" in them, but none that delete the record.
I guess I'll keep looking within the app.
Monday, March 11, 2013 10:52 AM