Я приведу пример псевдокода моего текущего метода, и если кто-то знает о методе, который не работает по одной строке за раз, я был бы весьма благодарен. Я использую MS SQL Server 2008.
define cursor for the data to be inserted (about 3 million records)
loop
(
insert record into table 1
use scope_identity() to get key
insert record into table 2 that references table 1
)
Я бы предпочел сделать какую-то вставку в обе таблицы одновременно, потому что курсор и цикл работают медленно.
Прежде чем кто-то расскажет о том, почему я вставляю что-то в две отдельные таблицы с отношением 1: 1, это потому, что первую таблицу нельзя изменить, и мне нужна информация во второй (временной) таблице для справки для преобразования данных операции позже.
Нет, я не могу добавить временный столбец для хранения справочных данных в таблице, которую нельзя изменить, поскольку она не может быть изменена. Это живая система, и у меня нет прав на изменение таблицы.
Спасибо!
Дополнительная информация:
Ex
Source:
1 a big monkey
2 a tall elephant
3 a big giraffe
4 a tiny cow
5 a tall cow
Dest:
Table 1 Table 2
monkey 1 big
elephant 2 tall
giraffe 3 big
cow 4 tiny
cow 5 tall