当前位置: 首页 > 面试题库 >

DELETE语句与REFERENCE冲突

岳迪
2023-03-14
问题内容

我有一个带有客户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

有任何想法吗?


问题答案:

您的问题与参照完整性有关。您无法删除的记录( 从表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如果仍被引用则不能。



 类似资料:
  • 主要内容:删除单个记录,删除多个记录,删除所有记录SQL DELETE语句用于从表中删除行。 通常,语句从表中删除一个或多个记录。 语法 假设有一张: 的结构和行记录得到以下结果: EMP_ID EMP_NAME CITY SALARY AGE 1 Angelina Chicago 200000 30 2 Robert Austin 300000 26 3 Christian Denver 100000 42 4 Kristen Washingt

  • 主要内容:语法,实例SQLite 的 DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除。 语法 带有 WHERE 子句的 DELETE 查询的基本语法如下: 您可以使用 AND 或 OR 运算符来结合 N 个数量的条件。 实例 假设 COMPANY 表有以下记录: 下面是一个实例,它会删除 ID 为 7 的客户: 现在,COMPANY

  • DELETE 语句用于删除表中的记录。 SQL DELETE 语句 DELETE 语句用于删除表中的行。 SQL DELETE 语法DELETE FROM table_name WHERE some_column=some_value; 请注意 SQL DELETE 语句中的 WHERE 子句! WHERE 子句规定哪条记录或者哪些记录需要删除。如果您省略了 WHERE 子句,所有的记录都将被删除

  • T-SQL 中的 DELETE语句用于删除想要从表中删除的记录。使用 WHERE 子句和 DELETE 命令来删除选择要删除的行。如果不指定WHERE条件,那么所有记录会被删除。 语法: 我们使用 AND 或 OR 运算符组合 N 个条件。 例子: 假设 EMPLOYEES 表具有以下记录 - 示例 1: 下面的命令是删除一个 EMPLOYEES 记录的示例,其 ID 为 006 - 在执行上面语

  • 问题内容: 我针对最近遇到的错误整理了一个测试表。尝试从MySQL表中删除单个记录时,它涉及使用LIMIT。 我所说的错误是“ 您的SQL语法有错误;请查看与您的MySQL服务器版本相对应的手册,以找到在第1行的’LIMIT 1’附近使用的正确语法 ” 我整理的桌子叫做 测试 ; 它有3列, id , name 和 created 。我用几条记录填充了表,然后尝试删除一条。以下是我用来尝试完成此操

  • 我试图使用和子句以及子查询来删除另一个表上的查询所给出的行,该表与我要删除的表是1比1,但Oracle 11g2向我抛出了一个完全没有帮助的ORA-00900错误,如下面的SQL fiddle: http://sqlfiddle.com/#!4/93171/1 对于那些无法使用SQLFIDLE的用户,我使用的模式/初始负载是(我使用而不是来实现测试可移植性,“野生”数据使用): 我想说的是: (自