既存のテーブルの1つから別の既存のテーブルにデータを挿入しようとしています。
select * into
クエリを使用して既存のテーブルにデータを挿入することは可能ですか?ユニオンを使用して実行できると思いますが、その場合、既存のテーブルのすべてのデータを一時テーブルに記録してから、そのテーブルをドロップし、最後にユニオンを適用してすべてのレコードを同じテーブルに挿入する必要があります
例えば。
select * into #tblExisting from tblExisting
drop table tblExisting
select * into tblExisting from #tblExisting union tblActualData
ここで、tblExistingは実際にすべてのデータを格納するテーブルです。tblActualDataは、データがtblExistingに追加されるテーブルです。
それは正しい方法です。他の方法はありますか?
試してみてください
INSERT INTO ExistingTable (Columns,..)
SELECT Columns,...
FROM OtherTable
[〜#〜]挿入[〜#〜] を見てください
および SQL SERVER –あるテーブルから別のテーブルへのデータの挿入– INSERT INTO SELECT – SELECT INTO TABLE
いいえ、_SELECT INTO
_を使用して既存のテーブルにデータを挿入することはできません。
documentation はこれを非常に明確にします:
SELECT…INTOは、既定のファイルグループに新しいテーブルを作成し、クエリの結果の行をそこに挿入します。
テーブルの作成方法をほとんど制御できず、あらゆる種類の厄介なロックやその他のパフォーマンスの問題を引き起こす可能性があるため、通常は本番環境で_SELECT INTO
_を使用しないようにします。スキーマを明示的に作成し、一時テーブルの場合でもINSERT
を使用する必要があります。
@Ryan Chase *を使用してすべての列を選択してこれを行うことはできますかはい!
INSERT INTO yourtable2 SELECT * FROM yourtable1