I got error “The DELETE statement conflicted with the REFERENCE constraint”

前端 未结 4 732
醉酒成梦
醉酒成梦 2020-12-01 23:08

I tried to truncate a table with foreign keys and got the message:

\"Cannot truncate table because it is being referenced by a FOREIGN KEY co

4条回答
  •  栀梦
    栀梦 (楼主)
    2020-12-01 23:57

    The error means that you have data in other tables that references the data you are trying to delete.

    You would need to either drop and recreate the constraints or delete the data that the Foreign Key references.

    Suppose you have the following tables

    dbo.Students
    (
    StudentId
    StudentName
    StudentTypeId
    )
    
    
    dbo.StudentTypes
    (
    StudentTypeId
    StudentType
    )
    

    Suppose a Foreign Key constraint exists between the StudentTypeId column in StudentTypes and the StudentTypeId column in Students

    If you try to delete all the data in StudentTypes an error will occur as the StudentTypeId column in Students reference the data in the StudentTypes table.

    EDIT:

    DELETE and TRUNCATE essentially do the same thing. The only difference is that TRUNCATE does not save the changes in to the Log file. Also you can't use a WHERE clause with TRUNCATE

    AS to why you can run this in SSMS but not via your Application. I really can't see this happening. The FK constraint would still throw an error regardless of where the transaction originated from.

提交回复
热议问题