当表之间有主外键关系时删除数据会被约束,添加、删除失败

解决办法,我们可以先把主外键关系的检查约束给关掉 → 然后删除数据 → 之后再把约束打开

查询出关掉所有外键约束的语句

SELECT 
'ALTER TABLE ' + O.NAME + ' NOCHECK CONSTRAINT [' + F.NAME + '];' AS COMMAND 
FROM 
SYS.FOREIGN_KEYS F INNER JOIN SYS.ALL_OBJECTS O ON F.PARENT_OBJECT_ID = O.OBJECT_ID 
WHERE O.TYPE = 'U' AND F.TYPE = 'F';

查询出开启所有外键约束的语句,与上面的区别是将 NOCHECK 改为 CHECK

SELECT 
'ALTER TABLE ' + O.NAME + ' CHECK CONSTRAINT [' + F.NAME + '];' AS COMMAND 
FROM 
SYS.FOREIGN_KEYS F INNER JOIN SYS.ALL_OBJECTS O ON F.PARENT_OBJECT_ID = O.OBJECT_ID 
WHERE O.TYPE = 'U' AND F.TYPE = 'F';

 

相关文章:

  • 2021-07-14
  • 2021-07-04
  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
  • 2022-12-23
  • 2022-02-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
  • 2021-10-03
相关资源
相似解决方案