У меня следующий сценарий,
Есть четыре таблицы СТРАНА, ГОСУДАРСТВО, ГОРОД, УЛИЦА
И у меня есть файл Excel с записями выше ... возможно 2000 строк на данный момент.
Я использовал SqlBulkCopy для импорта данных во временную таблицу, назовем таблицу IMPORT.
И я написал один триггер для вставки в таблицу IMPORT, которая получает вставленную запись
и разделяет страну, штат, город, улицу, а затем вставляет их в соответствующую таблицу.
В этом триггере я должен выполнить некоторую условную проверку, например, если имя COUNTRY уже присутствует, возвращает COUNTRY_ID, иначе вставьте его и получите новый COUNTRY_ID.
Вышеуказанное работает, если файл Excel имеет только одну строку.
Как только я поставил исходный Excel для импорта, я понял, что следующий оператор в триггере не может «выбрать страну из INSERTED» , потому что sqlbulkcopy делает INSERTED для более чем одной записи.
Структура таблицы
СТРАНА
STATE
- State_ID
- Country_ID
- State_Name
ГОРОД
- City_ID
- State_ID
- COUNTRY_ID
STREET
- Street_ID
- CITY_ID
- State_ID
- COUNTRY_ID
- STREET_NAME
ИМПОРТ
- COUNTRY_NAME
- State_Name
- city_name
- STREET_NAME
Так можно ли в цикле использовать оператор цикла, который будет перебирать все записи в INSERTED?
Или как решить эту проблему наилучшим образом?
ПРИМЕЧАНИЕ: Поскольку они уже используют его, я не могу контролировать структуру этих таблиц и их взаимосвязи.
Заранее спасибо.