Oracle
CREATE TABLE new_table AS SELECT * FROM source_table;
SQL Server
SELECT * INTO new_table FROM source_table;
補充說明
- 兩者皆會建立新資料表,包含來源資料表的欄位定義(資料型別、NULL/NOT NULL)與所有資料列。
- 不會複製:索引、主鍵、外鍵、檢查約束、觸發器、權限、擴充屬性等中繼資料。
- SQL Server `SELECT INTO` 在 `tempdb` 大量操作時可能造成系統表鎖定爭用(SQL 2005 前),新版本已大幅改善。
- 若需複製結構不複製資料:
Oracle: `CREATE TABLE new_table AS SELECT * FROM source_table WHERE 1=0;`
SQL Server: `SELECT * INTO new_table FROM source_table WHERE 1=0;`