2015-09-14 3 views
0

Для примера, скажем, у меня есть две таблицTSQL Loop через два запроса, чтобы вставить в другую таблицу

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

Я хочу Перебери каждый продукт и каждую компанию, для того, чтобы построить соответствующую таблицу (уже построен таким образом, я будет использовать здесь вставку).

CompanyProduct(companyId, productId) 

Я никогда не делал петлю с TSQL. Я легко знаю, как это сделать с LINQ, но TSQL должен быть быстрее для количества записей, которые я хочу сделать с этим.

Видя, что я ищу, чтобы каждый раз создавать 80 000 - 150 000 новых записей это используется, что является самым эффективным способом, которым я мог бы это сделать? Спасибо за вашу помощь

+0

Зачем вам нужен цикл? Вы можете выбрать из исходных таблиц и INSERT в свою целевую таблицу. –

+0

Что вы имеете в виду под «x новыми записями каждый раз, когда это используется»? –

+0

Это создаст много записей, но длительное время занимает linq. Это буквально заняло более 8 часов. –

ответ

2

Если вы хотите просто сочетание каждого продукта и компании, вы ищете CROSS JOIN, как это:

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

Это будет очень быстро.

Надежда, что помогает,

Ash

+0

Спасибо, что сработает –

Смежные вопросы