別のテーブルの定義に基づいてテーブルを作成したい。
私はオラクルから来て、私は通常これをします:
CREATE TABLE schema.newtable AS SELECT * FROM schema.oldtable;
SQL Server 2008ではこれを実行できないようです。
CREATE TABLE AS ... SELECT
はPDWに存在しますが、SQL Serverにはそのような構文はありません。 SQL Serverでは、このクエリを使用して空のテーブルを作成できます。
SELECT * INTO schema.newtable FROM schema.oldtable WHERE 1 = 0;
(テーブルのコピーを作成する場合を含むすべてのデータを使用する場合は、WHERE
句を省略します。)
これにより同じ列構造(存在する場合はIDENTITY列を含む)が作成されますが、インデックス、制約、トリガーなどはコピーされないことに注意してください。
select * into newtable from oldtable