web-dev-qa-db-ja.com

別のテーブルに基づいてテーブルを作成する方法

別のテーブルの定義に基づいてテーブルを作成したい。

私はオラクルから来て、私は通常これをします:

 CREATE TABLE schema.newtable AS SELECT * FROM schema.oldtable;

SQL Server 2008ではこれを実行できないようです。

27
oliverdejohnson

CREATE TABLE AS ... SELECTはPDWに存在しますが、SQL Serverにはそのような構文はありません。 SQL Serverでは、このクエリを使用して空のテーブルを作成できます。

SELECT * INTO schema.newtable FROM schema.oldtable WHERE 1 = 0;

(テーブルのコピーを作成する場合を含むすべてのデータを使用する場合は、WHERE句を省略します。)

これにより同じ列構造(存在する場合はIDENTITY列を含む)が作成されますが、インデックス、制約、トリガーなどはコピーされないことに注意してください。

77
Aaron Bertrand
select * into newtable from oldtable
17
Sonam