2012-07-12 63 views
0

我有了像批量插入在SQL服务器同时更新多个表

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

如果我正确理解你的话,你的问题是,当你从第一个表格选择到第二个表格时,你会得到每个产品的多行。为了避免这种情况发生,你可以这样做:

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

,然后嵌入到第三个表将只需要:

INSERT INTO TABLE3 
SELECT DISTINCT 
    ProductID 
    , CategoryID 
FROM 
    TABLE1 
+0

绝对正确的,我不知道为什么,这并不停留在我的心里,我问了一个愚蠢的问题。谢谢您的帮助。你节省了我的时间我即将在c#中编写代码 – Moons 2012-07-12 11:55:29