选择现有表,其中 ID 在另一个表中

Dae*_*hos 2 sql-server-2005 sql-server select copy

我有一个包含 ~35k IDs ( TableC) 的表,一个包含多列 ( TableA) 的ID表,其中包括前面提到的表和第三个空表,具有与第二个表 ( TableB)相同的列。

现在,我需要每个条目从复制TableATableB其中IDTableATableC。我想出了这个查询:

SELECT * INTO TableB
FROM TableA
WHERE ID IN
(SELECT ID FROM TableC)
Run Code Online (Sandbox Code Playgroud)

但这会导致错误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

我怎么能每个条目将复制TableATableB其中IDTableATableC

Mic*_*art 6

SELECT ... INTO语法仅适用于新表。我想你想要:

INSERT dbo.TableB ( <column list> )
SELECT <column list>
FROM dbo.TableA
WHERE ID IN 
  (
    SELECT ID
    FROM dbo.TableC
  ) ;
Run Code Online (Sandbox Code Playgroud)