在更新多个表时,在sql-server中批量插入

时间:2012-07-12 11:15:33

标签: sql sql-server-2008 sql-server-2005

我有一个包含

字段的表格
ID   ProductID  CategoryID and lot of columns......

1    1          1
2    1          2
3    2          1
4    2          2
5    2          3

我想将此表中的所有记录插入到两个具有

结构的独立表中
ID    ProductID   (Skip CategoryID column)....
1      1
2      2

ID  ProductID  CategoryID

1    1          1
2    1          1
3    2          2
4    2          2
5    2          2

我可以使用代码轻松完成此操作,但我想使用纯SQL。

通常我可以像

一样插入它
Insert into Table1 select * from Table2

但在这种情况下,每行后都有多个插入。

这方面的任何想法都是可观的。

1 个答案:

答案 0 :(得分:1)

如果我理解正确,那么问题在于当您从第一个表格中选择第二个表格时,每个产品会获得多行。为了解决这个问题,您可以执行以下操作:

INSERT INTO TABLE2 
SELECT DISTINCT 
    ProductID
    , etc. etc. -- Other columns as required
FROM
    TABLE1

然后插入第三个表只需要:

INSERT INTO TABLE3
SELECT DISTINCT 
    ProductID
    , CategoryID
FROM
    TABLE1