DB2中修改表的schema除了一般的建立別名,還能夠刪除表重建java
刪除表的順序應該是先在另外一個Schema下新建表,而後使用select ino將原表的數據導入新表,再刪除原表.sql
實現以下:測試
在SchemaTarget的Schema模式下,執行spa
CREATE TABLE Table1 LIKE SchemaSource.Table1blog
INSERT INTO Table1
SELECT * FROM SchemaSource.Table1開發
轉自http://hjw2java.iteye.com/blog/1441214get
首先咱們再來熟悉下INSERT INTO 與 SELECT INTO 的語法結構:it
---------table
一、變量
Insert是T-sql中經常使用語句,Insert INTO table(field1,field2,...) values(value1,value2,...)這種形式的在應用程序開發中必不可少。但咱們在開發、測試過程當中,常常會遇到須要表複製的狀況,如將一個table1的數據的部分字段複製到table2中,或者將整個table1複製到table2中,這時候咱們就要使用SELECT INTO 和 INSERT INTO SELECT 表複製語句了。
1.INSERT INTO SELECT語句
語句形式爲:Insert into Table2(field1,field2,...) select value1,value2,... from Table1
要求目標表Table2必須存在,因爲目標表Table2已經存在,因此咱們除了插入源表Table1的字段外,還能夠插入常量。
二、
SELECT INTO FROM語句
語句形式爲:SELECT vale1, value2 into Table2 from Table1
要求目標表Table2不存在,由於在插入時會自動建立表Table2,並將Table1中指定字段數據複製到Table2中。
----------
今天在DB2下須要表複製的狀況下,反覆使用SELECT INTO FROM 都提示失敗,後來一查,才發如今DB2中,SELECT INTO 被用在了諸如存儲過程當中給變量複製的功能,複製表只能用另外一種辦法實現了:
CREATE TABLE Table2 LIKE Table1
INSERT INTO Table2
SELECT * FROM Table1
-----------
注:經查實,在Oracle中select into from複製表也不可使用-----緣由很簡單:select into是PL/SQL language 的賦值語句!若是使用則Oracle會拋出0RA-00905:missing keyword的異常!
而Oracle的替代作法是:
CREATE TABLE Table2 AS Table1
INSERT INTO Table2SELECT * FROM Table1