2009-03-05 204 views
9

SQL Serverで作業しています(私はSQL Serverのnoobです)、テーブルを変更しようとしています。安全に保存するCREATE TABLE LIKE私はSQL Serverで 'CREATE TABLE ... LIKE ...'と同等のもの

+0

新しいテーブルに挿入されません

、それはデータベース構造の自動更新を可能にします。 – Ginden

答えて

14

...キーと制約とSQL Serverは、元のテーブルの上に変更する際に必要とするようだが、私はそのコマンドに一致するものを見つけることができませんでしたことを他のすべてのrigamoroleを落としながら、データをあなたは

を行うことができます

SELECT * INTO#MyTable_tmp からMyTable

MyTableを変更して、データを再度コピーします。その他私が見てきたアプローチは、新しいテーブルになるMytable_Tmp(一時テーブルではない)という新しいテーブルを作成することです。

次に、必要な移行を行っているデータをコピーします。その後、元のテーブルを削除し、Mytableに名前を変更します。

または、データベースを比較して差分スクリプトやVSTS DB Edition(開発者が付属)を生成する優れたツールの1つを取得し、プロジェクトファイルからDBにdiffスクリプトを実行できます。あなたがたMyTable FROM #MyTable INTO * SELECTを実行すると

編集

は、SQL Serverはselect句から各カラムとデータ型が一致する#MyTableと呼ばれる新しい一時テーブルを作成します。この場合、MyTableと一致する*を選択しています。これは、デフォルト、制約インデックスなどをコピーしない列を作成するだけです。

+0

私の質問は、既存の一時テーブルにデータを入れる方法ではありません。私は、既存のテーブルに一致する一時テーブルを作成することにもっと関心があります。私は変更する必要があるテーブルの数十があり、私は手動で一時テーブルを作成する必要はありません。 – Ichorus

+0

ああ!とても良い!ありがとうございました! – Ichorus

+0

そして鍵は?インデックス?外部キー? –

17

同じ構造を再作成したいですか?私は、この目的のためのVisual StudioのSQLサーバーエクスプローラを使用してどのようにこれについて

SELECT * 
into test 
FROM myRealTable 
where 0=1 

データが

+2

myRealTableからテストトップへ0 *を選択しても同じ結果が得られます –

関連する問題