当前位置: 首页 > news >正文

【SQL SERVER】sqlserver 该表字段如果被用作其他表的外键不能被truncate table

gs_cont表的主键被用作其他表的外键,这个表执行下列语句会报错
truncate table gs_cont
在这里插入图片描述
此时的解决方案有两种

  1. 执行delete语句,然后重置自增种子,能达到同样的效果,不过数据量过大的时候,执行会比较慢,效率不高,语句如下
    在这里插入图片描述

  2. 执行删除子表外键,然后truncate table,最后再将外键加回来,语句如下

--先查询外键名字
select * from sys.foreign_keys where parent_object_id=OBJECT_ID('GS_CONT_A');
--删除对应外键
ALTER TABLE GS_CONT_A DROP CONSTRAINT FK_GS_CONT_GS_CONT_ID;
--执行truncate table
TRUNCATE TABLE GS_CONT;
--增加对应外键
ALTER TABLE GS_CONT_A ADD CONSTRAINT FK_GS_CONT_GS_CONT_ID FOREIGN KEY (GS_CONT_ID) REFERENCES GS_CONT(GS_CONT_ID);

之前查解决方案,说可以将外键禁用,在启用,实际操作的时候发现这种方式不能达到效果,禁用后执行truncate table,还是会提示不能执行,因为被外键引用,最后选用了删除外键,执行truncate table,增加外键的方法

相关文章:

  • 掌握xtquant实时行情订阅:量化交易的关键一步
  • 强化学习笔记7——DDPG到TD3
  • 速度与激情:4.5吨轻卡阻力与刹车力模型的终极拆解——从仿真台架到真实路况的硬核对话
  • 2025年2月16日(numpy-deepseek)
  • 【云原生】SpringCloud-Spring Boot Starter使用测试
  • Spring源码分析のBean创建流程(上)
  • OpenCV简介
  • 用命令模式设计一个JSBridge用于JavaScript与Android交互通信
  • Python —— format函数的使用
  • Copilot in OneNote(WebTeams)功能提升效率加倍
  • open3d绘制平面
  • kamailio的伪变量
  • 2.2 反向传播:神经网络如何“学习“?
  • 从Vec3实现复习运算符重载
  • Deepseek R1模型本地化部署与API实战指南:释放企业级AI生产力
  • 如何在 Vue 3 中使用 Vue Router 和 Vuex
  • 联想小新 510S-14IKB (80UX) 原厂Win10系统oem镜像下载
  • Hive查询之排序
  • 面试题整理:操作系统
  • Python 用户输入和While循环(使用while 循环来处理列表和字典)
  • 一种声音·阿甘本|即将到来的中世纪;“新”与“旧”……
  • 中国军网:带你揭开3所新调整组建军队院校的神秘面纱
  • 普京召开俄乌谈判筹备会议,拉夫罗夫、绍伊古等出席
  • 齐白石精品在波士顿展出,“白石画屋”呈现水墨挥洒
  • 免签国+1,中乌(兹别克斯坦)互免签证协定6月生效
  • 菲律宾中期选举初步结果出炉,杜特尔特家族多人赢得地方选举