Take the common example of Employee - Manager relationship:
If you try using SSMS results grid to delete all records, you may get this error:
No rows were deleted.
A problem occurred attempting to delete row 1.
Error Source: .Net SqlClient Data Provider.
Error Message: The DELETE statement conflicted with the SAME TABLE REFERENCE constraint "FK_Employee_Employee". The conflict occurred in database "test", table "dbo.Employee", column 'ManagerId'.
The statement has been terminated.
Using the Query window and running:
DELETE employee
Will work however.
The difference is that SSMS actually tries to delete row by row, which will violate the constraint. But when using a query to delete all records. SQL Serve is smart enough to clear all data.
No comments:
Post a Comment