У меня есть таблица STG, где мы ежедневно обрезаем и загружаем значения в таблицу STG из двух таблиц SRC. Я создал флаг изменения (Ch_Flg) и в таблице STG, чтобы вместо ежедневной усечения таблиц мы вставляем значения в STG только тогда, когда некоторые поля в SRC изменились.Вставка записей в таблицу, если значения из src были изменены
Однако, поскольку таблица SRC загружается непосредственно в STG, мне нужна временная таблица между тем, где я могу хранить все записи SRC и проверять с помощью STG, если записи были изменены и вставляются в STG только тогда, когда эти записи были изменены.
Например таблица SRC1 имеют столбцы типа (ID, имя, Tag, Сектор, Отдел, Город, телефон, HireDate и т.д.) и SRC2 имеют столбцы типа (ID, имя, компетенции, город, телефон и т.д.)
Должен ли я загружать все значения из SRC в временную таблицу, а затем сравнивать их с таблицей STG? Или есть более эффективный способ сделать это?
Спасибо за структуру. что такое синглы? –
Это называется «Common Table Expression» или CTE, это способ собрать определенный набор данных и сделать с ним что-то еще. Таким образом, в этом случае, если вы возьмете инструкцию select внутри «С» и запустите ее со своими таблицами, вы вернете все из одной таблицы, а не в другую. Затем мы берем этот набор данных и вставляем записи, которые не встречаются в таблице адресатов. В вашем случае я предполагаю, что вас интересуют только записи с населенным флагом изменения. Таким образом, вы можете сделать все, чтобы изменить данные, а затем вставить их ниже. – DrHouseofSQL
Редактирование: Все «другие поля», которые у меня есть в нижней части скрипта, должны быть в исходном select в инструкции WITH. Извините, что – DrHouseofSQL