从具有外键约束的两个表中删除

时间:2010-09-28 17:59:21

标签: sql-server

我的数据库中有两个表,t1表的主键是uid,t2表是外键名称desg。现在我想删除或更新一个表中的这个uid给出错误

  

现在行已更新。行中的数据   没有承诺。错误   source:.netSqlclient数据提供程序。   错误消息:更新语句   与参考文献冲突   约束fk_t2_t1.发生冲突   在数据库DBname,dbo.t2,列中   DESG。这个场景一直都是   终止。

当我尝试删除时,会显示此消息。

  

执行SQl语句:从t1删除   其中uid ='abc'

     

错误来源:.netSqlclient数据   供应商。错误消息:删除   声明与之相冲突   参考约束fk_t2_t1.the   数据库DBname中发生冲突,   dbo.t2,列desg。这个场景有   已被终止。

请告诉我如何进行此更新和删除。

我是这个领域的新手需要帮助,谢谢你的进步。

2 个答案:

答案 0 :(得分:2)

首先删除t2 table a foreign key,然后删除t1 table primary key is uid。这将不起作用

答案 1 :(得分:2)

表t2中有一个或多个子记录,它们指向要删除的表t1中的主记录。在t1中删除记录之前,必须删除t2中的子记录。

例如:

(1)从t2删除*,其中t2.desg = t1.uid;

(2)从t1删除*,其中t1.uid = UID_TO_BE_REMOVED;

我建议阅读有关创建表和执行正在使用的SQL数据库的查询的好参考。

祝你好运!