db2修改表名比较麻烦 db2 修改字段名

db2 在修改表名的时候,表上不能有外键约束,不能被视图引用。。。。。。。。。

--例子

RENAME TABLETPA_AVMACCOUNTTOTCASH_AVMACCOUNT;
RENAME TABLE TPA_BOMACCOUNT TOTCASH_BOMACCOUNT;
RENAME TABLE TPA_CSCTICKETTOTCASH_CSCTICKET;
RENAME TABLE TPA_HEADINFO TOTCASH_HEADINFO;

--db2 报了一大堆错误(刚开始有点怕怕的)

在发出 RENAME 语句之前,删除依赖于此表的视图、具体化查询表、触发器、SQL
函数、SQL 方法、检查约束、引用约束或 XSR 对象。对于依赖于此表的视图或具
体化查询表,请查询 SYSCAT.VIEWDEP 并使表与 BSCHEMA 和 BNAME 列匹配。对
于依赖于此表的触发器,请查询 SYSCAT.TRIGDEP 并使表与 BSCHEMA 和 BNAME
列匹配。对于 SQL 函数或 SQL 方法,请查询 SYSCAT.FUNCDEP 并使表与 BSCHEMA
和 BNAME 列匹配。对于表的检查约束,请查询 SYSCAT.CHECKS 并使表与
TABSCHEMA 和 TABBNAME 列匹配。对于依赖于此表的引用约束,请查询
SYSCAT.REFERENCES 并使表与 TABSCHEMA 和 TABNAME 列或者 REFTABSCHEMA 和
REFTABNAME 列匹配。对于为了进行将此表作为目标的分解而启用的 XSR 对象,
请查询 SYSCAT.XSROBJECTDEP 并使表与 BSCHEMA 和 BNAME列匹配。

--看来限制条件真多,根据错误提示,查看对象的依赖性

select * from SYSCAT.VIEWDEP where bschema='L_SZ_V16' AND BNAMEIN('TPA_AVMACCOUNT','TPA_BOMACCOUNT','TPA_CSCTICKET','TPA_HEADINFO');
db2修改表名比较麻烦 db2 修改字段名
select * from SYSCAT.TRIGDEP wherebschema='L_SZ_V16' AND BNAMEIN('TPA_AVMACCOUNT','TPA_BOMACCOUNT','TPA_CSCTICKET','TPA_HEADINFO');
select * from SYSCAT.FUNCDEPwhere bschema='L_SZ_V16' AND BNAMEIN('TPA_AVMACCOUNT','TPA_BOMACCOUNT','TPA_CSCTICKET','TPA_HEADINFO');
SELECT * FROM SYSCAT.CHECKSWHERE TABSCHEMA='L_SZ_V16' AND TABNAMEIN('TPA_AVMACCOUNT','TPA_BOMACCOUNT','TPA_CSCTICKET','TPA_HEADINFO');
SELECT * FROM SYSCAT.REFERENCES WHERETABSCHEMA='L_SZ_V16' AND TABNAMEIN('TPA_AVMACCOUNT','TPA_BOMACCOUNT','TPA_CSCTICKET','TPA_HEADINFO');
SELECT * FROM SYSCAT.REFERENCES WHEREREFTABSCHEMA='L_SZ_V16' AND REFTABNAMEIN('TPA_AVMACCOUNT','TPA_BOMACCOUNT','TPA_CSCTICKET','TPA_HEADINFO');
SELECT * FROM SYSCAT.XSROBJECTDEP WHEREbschema='L_SZ_V16' AND BNAMEIN('TPA_AVMACCOUNT','TPA_BOMACCOUNT','TPA_CSCTICKET','TPA_HEADINFO');

查看后,发现表上有外键约束,其他的都没有

--执行删除外键的sql

ALTER TABLE TPA_AVMACCOUNT DROP FOREIGN KEYFK57641F8FB2FBC862;ALTERTABLE TPA_CSCTICKET DROP FOREIGN KEY FK3505A84597A0F542;
COMMIT;


RENAME TABLE TPA_AVMACCOUNT TOTCASH_AVMACCOUNT;RENAMETABLE TPA_BOMACCOUNT TOTCASH_BOMACCOUNT;RENAMETABLE TPA_CSCTICKET TOTCASH_CSCTICKET;RENAMETABLE TPA_HEADINFO TOTCASH_HEADINFO;
COMMIT;
--执行创建外键的sql,表名TPA_开头的都修改为 TCASH开头,然后执行。
ALTER TABLE TCASH_CSCTICKET ADD CONSTRAINT FK3505A84597A0F542FOREIGN KEY (BOMACCOUNT_RECORDID) REFERENCESTCASH_BOMACCOUNT(RECORDID) ON DELETE CASCADE ON UPDATE RESTRICTENFORCED ENABLE QUERYOPTIMIZATION;ALTERTABLE TCASH_AVMACCOUNT ADD CONSTRAINT FK57641F8FB2FBC862 FOREIGNKEY (HEADINFO_RECORDID) REFERENCES TCASH_HEADINFO(RECORDID) ONDELETE CASCADE ON UPDATE RESTRICT ENFORCED ENABLEQUERYOPTIMIZATION;COMMIT;

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/199077.html

更多阅读

腾讯微博怎么修改账号 手机怎么注销腾讯微博

腾讯微博怎么修改账号——简介腾讯微博怎么修改账号,腾讯微博账号不能随时修改,只允许修改三次,之后就不能再修改了,在电脑登录腾讯微博改账号需要绑定手机号比较麻烦,但也可以不用绑定手机号修改,我说下我的修改过程腾讯微博怎么修改账

SQL Server相似比较算法实现 – 码农网 码农网网盘地址

概述最近有人问到关于两个字段求相似度的函数,所以就写了一篇关于相似度的函数,分别是“简单的模糊匹配”,“顺序匹配”,“一对一位置匹配”。在平时的这种函数可能会需要用到,可能业务需求不一样,这里只给出参照,实际情况可以相对修改。本

声明:《db2修改表名比较麻烦 db2 修改字段名》为网友粗卡少年分享!如侵犯到您的合法权益请联系我们删除