У меня есть таблица (Customer_Master_File), которая должна обновляться из плоских файлов, сбрасываемых в папку. У меня есть пакет служб SSIS, который работает, чтобы забрать плоские файлы и импортирует их в временную таблицу (temp_Customer_Master_File)Использование SQL Merge или UPDATE/INSERT
То, что я был не в состоянии сделать это:
для каждой записи в таблице темп, если номер_объекта существует в главной таблице, обновляйте его, если не вставлять содержимое таблицы temp.
Я обновляю все поля записи, не ища отдельные изменения полей.
Я попробовал функцию SQL Merge, но это ошибки, когда в исходных данных имеется более одной записи.
Плоские файлы содержат изменения в записи клиента, и одновременно может быть более одного изменения. Я просто хочу обрабатывать каждую запись с вставкой или обновлением по мере необходимости.
Я также пробовал делать INSERT INTO MASTER_FILE FROM TEMP_TABLE ГДЕ CUSTOMER_NUMBER НЕ В MASTER_FILE, но это также терпит неудачу с ошибкой PK при попадании в дублирующую строку источника.
Благодарим за это, обновления отлично работают, вставки не работают из-за повторяющихся строк. На самом деле не имеет значения, какую запись я использую для вставок, в temp_table есть столбец timestamp, поэтому самая последняя запись будет работать. – Kerberos42
Спасибо за обновление с помощью столбца timestamp, я его не пробовал, но похоже, что он сработает. Еще раз спасибо! – Kerberos42