带有外键约束的主表为啥不能truncate?

funcreal 2005-08-25 08:46:43
此时两表都是空的。请给解释一下。

服务器: 消息 4712,级别 16,状态 1,行 1
无法截断表 'item',因为该表正由 FOREIGN KEY 约束引用。
...全文
900 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlp321002 2005-08-25
  • 打赏
  • 举报
回复
--建议,2楼把这个未公开的存储过程用法,给大家讲讲,很多时候,好象都会用到它!
zlp321002 2005-08-25
  • 打赏
  • 举报
回复
--先删除约束,然后删除表
vivianfdlpw 2005-08-25
  • 打赏
  • 举报
回复
--禁用外键约束
exec sp_msforeachtable 'alter table ? nocheck constraint all'

--清空数据
truncate table 表名

--启用外键约束
exec sp_msforeachtable 'alter table ? check constraint all'
MorningTea 2005-08-25
  • 打赏
  • 举报
回复
因为它是被参考的主表,不管有没有数据,都必须存在一个主表,否则你的foreign key失去意义

先用alter table先禁用子表的此外键约束,后删除主表数据,否则还能怎样呢?

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧