脚本所有外键约束-结果集可用于将约束复制到测试数据库
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了脚本所有外键约束-结果集可用于将约束复制到测试数据库相关的知识,希望对你有一定的参考价值。
/*** Script all Foreign Key Constraints ***/ /*** The Result Set can be used to copy constraints to your testing DB or to keep on hand in case of errors. ***/ SELECT 'ALTER TABLE '+FK.TABLE_NAME+ ' ADD CONSTRAINT '+C.CONSTRAINT_NAME+' FOREIGN KEY'+ '('+CU.COLUMN_NAME+') '+ 'REFERENCES '+PK.TABLE_NAME+ '('+PT.COLUMN_NAME+')' ForeignKeyScripts FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS C INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS FK ON C.CONSTRAINT_NAME = FK.CONSTRAINT_NAME INNER JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS PK ON C.UNIQUE_CONSTRAINT_NAME = PK.CONSTRAINT_NAME INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE CU ON C.CONSTRAINT_NAME = CU.CONSTRAINT_NAME INNER JOIN ( SELECT i1.TABLE_NAME, i2.COLUMN_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS i1 INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE i2 ON i1.CONSTRAINT_NAME = i2.CONSTRAINT_NAME WHERE i1.CONSTRAINT_TYPE = 'PRIMARY KEY' ) PT ON PT.TABLE_NAME = PK.TABLE_NAME
以上是关于脚本所有外键约束-结果集可用于将约束复制到测试数据库的主要内容,如果未能解决你的问题,请参考以下文章
sql 创建用于查找外键约束的脚本,并通过删除和创建外部约束来重建它们。
SQLSTATE [23000]:完整性约束违规:1452 无法添加或更新子行:外键约束失败