主页 > 人工智能  > 

【SQLSERVER】sqlserver该表字段如果被用作其他表的外键不能被truncatetable

【SQLSERVER】sqlserver该表字段如果被用作其他表的外键不能被truncatetable

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

执行delete语句,然后重置自增种子,能达到同样的效果,不过数据量过大的时候,执行会比较慢,效率不高,语句如下

执行删除子表外键,然后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,增加外键的方法

标签:

【SQLSERVER】sqlserver该表字段如果被用作其他表的外键不能被truncatetable由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【SQLSERVER】sqlserver该表字段如果被用作其他表的外键不能被truncatetable