如何删除有外键约束的数据

SQLServer 2012

表TableA与TbaleB有外键约束,约束列名为TbaleB的iTableAID列,删除的时候会提示

DELETE  dbo.TableA

消息 547,级别 16,状态 0,第 1 行

DELETE 语句与 REFERENCE 约束"FK_TbaleB_TableA_iTableAID"冲突。该冲突发生于数据库"TEST",表"dbo.TbaleB", column ‘iTableAID‘。

语句已终止。

此时需要让其禁用TbaleB与之对应的约束

需要执行

ALTER TABLE dbo.TbaleB NOCHECK CONSTRAINT ALL

此时TbaleB与TableA不再检查约束

然后再

DELETE  dbo.TableA

最后需要还原约束

ALTER TABLE dbo.TbaleB CHECK CONSTRAINT ALL

ALTER 改变

CHECK 检查

CONSTRAINT 约束

时间: 2024-11-04 19:13:43

如何删除有外键约束的数据的相关文章

MySQL 如何删除有外键约束的表数据

-- 禁用外键约束 SET FOREIGN_KEY_CHECKS=0; -- 删除数据 truncate table stockTBL; -- 启动外键约束 SET FOREIGN_KEY_CHECKS=1; -- 查看当前FOREIGN_KEY_CHECKS的值,可用如下命令: SELECT @@FOREIGN_KEY_CHECKS;

处理有外键约束的数据

mysql SET FOREIGN_KEY_CHECKS = 0;    delete from  approval_info;delete from approval_manage;delete from site_message;delete from works;delete from works_theme;SET FOREIGN_KEY_CHECKS = 1; oracle drop tablename no CONSTRAINT 还有一个本办法就是 一个一个的找到主键然后外键约束,然

SQL批量删除用户表(先删除所有外键约束,再删除所有表)

--批量删除用户表 --1.删除外键约束DECLARE c1 cursor for     select 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; '    from sysobjects     where xtype = 'F'open c1declare @c1 varchar(8000)fetch next from c1 into @c1while(@@fetch_status=0

删除、更新具有外间约束的数据

在数据库使用过程中,不可避免的会遇到需要删除具有外键约束的数据这样的情况,通常有两种做法: 1.删除外键表,再删除主键表 2.给外键都加上级联现在主要介绍使用级联删除.更新约束数据.级联的意思,就是在删除.更新主键表数据时,同时删除.更新外键数据.操作方法:外键后添加:on update cascade(更新级联)On delete cascade(删除级联)例:sql server2008 添加级联:1.打开数据库,右键表名-->设计 2.右键外键字段,点击“关系”,打开“外键关系”窗口 3.

牛腩新闻发布系统---外键约束下如何删除记录

一.为什么使用外键? 查了些资料,八个字"保持完整性.一致性",结合我之前做的重构机房收费系统,我的理解是"防止相关表中数据没有关联而变得孤立,最终导致数据冗余",得出这个结论是上次让贾丽敏帮忙点系统时候我最深刻的感受,因为我的数据库关系图中辣么多张表却没有丝毫关系-- 既然官方解释是"完整性和一致性",就先来说明一下: 对于完整性和一致性,不少人都混为一谈了. 完整性(integrity)更多是针对实际业务来说的,比如说一个职员ID,不能在一个

oracle 删除外键约束 禁用约束 启用约束

oracle 删除外键约束 禁用约束 启用约束 执行以下sql生成的语句即可 删除所有外键约束 Sql代码 select 'alter table '||table_name||' drop constraint '||constraint_name||';' from user_constraints where constraint_type='R' 禁用所有外键约束 Sql代码 select 'alter table '||table_name||' disable constraint

sql server解决无法删除修改拥有外键约束的表或表的记录字段

sql server解决无法删除修改拥有外键约束的表或表的记录字段 问题如下: or 解决步骤: 1.找出该表的所有外键约束 select * from sys.foreign_keys where referenced_object_id=object_id('订单') order by 1 2.删除所有外键约束(注意外键的名字和表的名字分别是哪个!) alter table 订货项目 drop constraint FK__订货项目__订单编号__412EB0B6; 到这就可以把表删掉了~

sql中批量删除带有外键的所有表

1首先删除所有的外检约束 --删除所有外键约束 DECLARE c1 cursor forselect 'alter table ['+ object_name(parent_obj) + '] drop constraint ['+name+']; 'from sysobjectswhere xtype = 'F'open c1declare @c1 varchar(8000)fetch next from c1 into @c1while(@@fetch_status=0)beginexec

C# 如何物理删除有主外键约束的记录?存储过程实现

十年河东,十年河西,莫欺少年穷 本篇主旨是如何物理删除有主外键约束的记录!那么,我们从主外键走起! 下面新建三张有主外键约束的表,分别为:系/学院表,专业班表,学生表,如下: CREATE TABLE Dept--系/学院表 ( DeptId int identity(1,1) primary key, DeptName nvarchar(50),--系名称 AddTime datetime default(getdate()) ) CREATE TABLE Grade--班级表 ( Grade