2015-09-14 114 views
0

例如,假設我有兩個表TSQL遍歷兩個查詢插入到另一個表

Product(id, name) 
Company(id, name) 

我經歷的每一件產品和每家公司,以建立一個相關的表要循環(已建成,所以我會在這裏使用插入)。

CompanyProduct(companyId, productId) 

我從來沒有用TSQL做過循環。我很容易知道如何用LINQ來做到這一點,但TSQL應該是更快的我想要做的記錄數量。一個

看到,我看着不得不建立每次超過80000 - 150,000新記錄這是使用什麼是我可以做到的最有效的方式?感謝您的幫助

+0

爲什麼你需要一個循環?您可以從源表中選擇並將其插入到目標表中。 –

+0

你是什麼意思「每次使用這個新記錄時」? –

+0

它會創建很多記錄,但是使用linq需要很長時間。它從字面上花了8個小時。 –

回答

2

如果你只是想每一個產品和公司的組合,你正在尋找一個CROSS JOIN,類似這樣的:

INSERT INTO CompanyProduct 
SELECT P.id, C.id FROM Product as P CROSS JOIN Company AS C; 

這將是非常快的。

希望幫助,

+0

謝謝你,會工作 –

相關問題