本文主要是介绍无法截断表 ‘tbl_***‘,因为该表正由 FOREIGN KEY 约束引用。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
错误背景:
有两张表,一张是主表(tbl_invoice),一张是明细表(tbl_invoice_detail),
出于某种原因现在需要清空数据库,保留数据库结构,为了使自增长字段重新从1开始,我使用了truncate语法进行操作:
由于主表和明细表之间存在主外键关系,我先清空了明细表,然后清空主表的时候发生了上图中的错误。
补充一点:
(tbl_invoice表中的主键id和tbl_invoice_detail的字段invoice_id是主外键关系)
这时后应该怎么做呢?
查询外键(在主表中查询):
--在主表中查询主外键关系
exec sp_helpconstraint 'tbl_invoice'
执行结果:
删除外键(在明细表中删除外键):
--在明细表中删除外键
alter table tbl_invoice_detail drop constraint fk_tbl_invoice_detail_invoice_id
执行结果:
tbl_invoice_detail是明细表的表名
invoice_id是明细表中的外键
这时候就可以truncate主表了
truncate table tbl_invoice
执行结果:
可以看到主表已经truncate成功了。
把删除的外键再添加回去
--在明细表中把删除的主外键添加上
alter table tbl_invoice_detail
add constraint fk_tbl_invoice_detail_invoice_id foreign key (invoice_id) references tbl_invoice(id)
后来又发现一种简单的方法:
无法截断表 ‘tbl_******** ‘,因为该表正由 FOREIGN KEY 约束引用点击进来看看吧
这篇关于无法截断表 ‘tbl_***‘,因为该表正由 FOREIGN KEY 约束引用。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!