小编典典

DELETE语句与REFERENCE冲突

sql

我有一个带有客户ID的table_Project(链接到tbl_Customer)。在tbl_Customer中,我有Customer_ID(作为密钥)和其他一些信息,例如电话,电子邮件等。

要将其从Gridview中删除,请使用以下DeleteCommand:

DeleteCommand="DELETE FROM [tbl_Customer] WHERE [Customer_ID] = @Customer_ID"

但这给了我以下错误:

The DELETE statement conflicted with the REFERENCE constraint "Klant_Relatie". The conflict occurred in database "Database_1", table "dbo.tbl_Project", column 'CustomerID'. The statement has been terminated.

但是通过更新CustomerInfo我没有得到任何错误。我已经看到了C#的不同解决方案,但是我使用.net

有任何想法吗?


阅读 197

收藏
2021-04-28

共1个答案

小编典典

您的问题与参照完整性有关。您无法删除的记录( 从表tbl_Customer_目前正在通过一些记录在某个表中引用)(
_表table_Project例如
)。UPDATEDELETE除非您要更新密钥,否则与情况不同CustomerIDUPDATEDELETE删除记录的同时修改记录。

看一下这个例子,

tbl_Customer表

CustomerID  CustomerName
1           Hello
2           World

table_Project表

CustomerID  ProjectName
1           Webscripting
1           Database Maintenance

您始终可以在2表的记录上执行任何您想做的事情,tbl_customer因为没有引用它的记录。但是在record中1,除非删除表table_Project中的两个记录,否则无法将其删除。您可以修改列,CustomerNameCustomerID如果仍被引用则不能。

2021-04-28