2016-04-19 2 views
2

Я собираюсь заполнить таблицу с 4 столбцами date, budget, cs, adrr каждую ночь. Проблема в том, что я буду читать из полного файла каждую ночь. Так, например, в первую ночь файл будет иметь следующие значения:Заполнение существующей таблицы с отличием от полного файла

206-04-19 | 30000 | 566 | Фэнтезийная дорога 1 |

И NEX ночь файл будет иметь следующие значения:

206-04-19 | 30000 | 566 | Фэнтезийная дорога 1 |

206-04-20 | 32000 | 456 | Представьте себе переходы 44 |

Так что за каждую ночь файл будет иметь увеличенные строки (будет больше, чем всего на 1 строку). Что было бы лучшим способом заполнить эту таблицу? Выбрасывать таблицу каждую ночь перед ее заполнением или есть способ только заполнить строки, которые не существуют в таблице? Я бы предпочел использовать SSIS в качестве полного решения, но я также желаю использовать любые другие решения.

Спасибо!

+0

Как я понял: дата - это уникальное поле для ваших данных. Таким образом, вы можете загрузить файл в некоторую временную таблицу и вставить только не существующие даты. Если вы добавите только новые строки в файл, вы можете выбрать последнюю добавленную дату и вставить только записи с датой> последним. –

+0

это зависит от того, насколько большой файл будет расти ... Я бы построил таблицу проверки Delta (Today - Yesterday), чтобы вставить только новые данные –

ответ

2

Есть еще несколько соображений, о которых вам нужно подумать, что может изменить ваш подход к этому. Вы упомянули новые данные, есть ли у вас возможность удалить или изменить данные между днями? Если нет, то я рекомендую либо НЕ СУЩЕСТВУЮТ, либо используя внешнее соединение с предикатом IS NULL в предложении where. Если у вас есть возможность удаления/модификации существующих данных, вам лучше рассмотреть либо полный усечение (остерегайтесь файлов журналов и статистики, если это так), либо запуск MERGE между новым файлом и старыми данными ,

0

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

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