一、生成系统目前的外键报告单 首先生成系统目前模式下的所有外键情况报告单,SQL脚本如下: ***************************************************************** 脚本1:列出当前模式下所有外键的报告表,可以将其spool到某个文件中 ***************************************************************** SELECT RPAD(child.TABLE_NAME,25,' ') Child_Tablename, RPAD(cp.COLUMN_NAME,17,' ') Referring_Column, RPAD(parent.TABLE_NAME,25,' ') Parent_Tablename, RPAD(pc.COLUMN_NAME,15,' ') Referred_Column, RPAD(child.CONSTRAINT_NAME,25,' ') Constraint_Name FROM USER_CONSTRAINTS child, USER_CONSTRAINTS parent, USER_CONS_COLUMNS cp, USER_CONS_COLUMNS pc WHERE child.CONSTRAINT_TYPE = 'R' AND child.R_CONSTRAINT_NAME = PARENT.CONSTRAINT_NAME AND child.CONSTRAINT_NAME = cp.CONSTRAINT_NAME AND parent.CONSTRAINT_NAME = pc.CONSTRAINT_NAME AND cp.POSITION = pc.POSITION ORDER BY child.OWNER, child.TABLE_NAME, child.CONSTRAINT_NAME, cp.POSITION; 该脚本生成所在模式下的所有外键情况,包括外键名称,父项表名称,子项表名称以及引用的列名称等。在SQL/PLUS下运行该脚本,在运行该脚本之前,可以将输出SPOOL到本地某个文件中。同时要注意,如果应用系统中的外键比较多且复杂的话,这个脚本的运行时间会比较长。 二、生成删除系统自动命名的外键脚本 在SQL/PLUS下,运行下面的脚本来生成删除系统自动命名(也就是外键名称以SYS为前缀)的所有外键,和生成外键报告一样,将生成脚本spool到某个文件中。 ***************************************************************** 脚本2:删除系统自动生成的外键约束条件 ***************************************************************** SELECT 'ALTER TABLE ' || TABLE_NAME ||' '|| 'DROP CONSTRAINT ' || CONSTRAINT_NAME || ' ;' FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME LIKE 'SYS%' AND CONSTRAINT_TYPE = 'R'; 运行该脚本,系统生成如下所示的删除外键脚本: ALTER TABLE DJ_NSRXX DROP CONSTRAINT SYS_C000231;  
2/2 首页 上一页 1 2 |