web-dev-qa-db-ja.com

IDが別のテーブルにある既存のテーブルを選択します

〜35k IDs(TableC)を含む1つのテーブル、複数の列(TableA)を特徴とする1つのテーブル、特に前述のIDがありますテーブルと3番目の空のテーブル。2番目のテーブルと同じ列(TableB)を備えています。

次に、すべてのエントリをTableAからTableBにコピーする必要があります。ここで、IDTableATableCにあります。私はこのクエリを思いつきました:

SELECT * INTO TableB
FROM TableA
WHERE ID IN
(SELECT ID FROM TableC)

しかし、これはエラーThere is already an object named 'TableB' in the database. .. TableBを削除して再作成することはできません。

Microsoft SQL Server Enterprise Edition v9.00.3042.00、つまりSQL Server 2005 Service Pack 2に取り組んでいます

TableATableBIDにあるTableAからTableCにすべてのエントリをコピーするにはどうすればよいですか?

2
Daedalus Mythos

SELECT ... INTO構文は、新しいテーブルでのみ使用できます。私はあなたが望むと思います:

INSERT dbo.TableB ( <column list> )
SELECT <column list>
FROM dbo.TableA
WHERE ID IN 
  (
    SELECT ID
    FROM dbo.TableC
  ) ;
6
Michael J Swart