fyqt.net
当前位置:首页 >> sql删除外键关联数据 >>

sql删除外键关联数据

--使用SYSREFERENCES --删除外键 set xact_abort on begin tran DECLARE @SQL VARCHAR(99) DECLARE CUR_FK CURSOR LOCAL FOR SELECT 'alter table ['+ OBJECT_NAME(FKEYID) + '] drop constraint ' + OBJECT_NAME(CONSTID) FROM SYSREFERENCES -...

删除语句如下: alter table 表名 drop constraint 外键约束名 使用如下SQL语句查询出表中外键约束名称: select name from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id where f.parent_object_id=obj...

select 'ALTER TABLE '+o.name+' NOCHECK CONSTRAINT '+fk.name+';' AS Command from sys.foreign_keys fk JOIN sys.all_objects o ON (fk.parent_object_id=o.object_id) 具体会有多少条记录,取决于你的数据库里面,有多少个外键了。 然后复制...

当在创建主外键时,如图所示: 把删除规则设为层叠(SQL2005),在SQL2008中又叫做级联了! 类别表和新闻表,新闻表和评论表都要设为层叠。

--删除主键 alter table Stu_PkFk_S drop constraint PK_S 删除SQL SERVER外键 alter table Stu_PkFk_Sc drop constraint FK_s 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一...

-- 创建测试主表. ID 是主键.CREATE TABLE test_main ( id INT NOT NULL, value VARCHAR(10), PRIMARY KEY(id) );-- 插入测试主表数据.INSERT INTO test_main(id, value) VALUES (1, 'ONE');INSERT INTO test_main(id, value) VALUES (2, 'TWO')...

那就删除两个表之间的外键就可以。 如下图的表: 可查询出: select name from sys.foreign_key_columns f join sys.objects o on f.constraint_object_id=o.object_id where f.parent_object_id=object_id('表名') 删除的一般语法为: alter ta...

外键创建的时候有几个选项 一个是什么都不管,就是你的这种情况, 删除的话就直接报错 还有一个是级联删除, 删除的时候, 只要有引用的数据就会被一起删掉 还有一个是设置空, 如果关联的数据被删除, 对应的外键会被设置为空

最保险的方法就是根据主外键,先从子表中删除,然后再把主表的记录删除

如果只是为了保留子表中的具体数据,可以先把对应的记录插入到一个备份表中,再删除主表记录,此时原子表中对应记录也会被删除,但可以在备份表中查到。 如果是要把数据仍保存在子表中,就只能先撤消主外键关系再删除主表中记录了。当然,也可以...

网站首页 | 网站地图
All rights reserved Powered by www.fyqt.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com