25

私は SQL Server で作業しており (私は SQL Server 初心者です)、テーブルを変更しようとしています。CREATE TABLE LIKEキーと制約、および元のテーブルを変更するときに SQL Server が必要と思われる他のすべてのリガロールを削除している間、データを安全に保存したいのですが、そのコマンドに一致するものを見つけることができませんでした...

4

2 に答える 2

44

同じ構造を作り直したいですか?

これはどう

 SELECT *
 into test
 FROM myRealTable
 where 0=1

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

于 2009-03-05T20:05:35.417 に答える
20

できるよ

SELECT * INTO #MyTable_tmp FROM MyTable

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

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

または、データベースを比較して差分スクリプトを生成する多くの優れたツールの 1 つまたは VSTS DB Edition (開発者に付属) を入手して、プロジェクト ファイルから DB への差分スクリプトを実行できます。

編集

を実行するSELECT * INTO #MyTable FROM MyTableと、SQL Server は #MyTable という名前の新しい一時テーブルを作成します。これは、select 句の各列とデータ型に一致します。この場合、* を選択しているため、MyTable と一致します。これは、デフォルト、制約インデックスなどをコピーしない列のみを作成します。

于 2009-03-05T18:58:16.000 に答える