У меня есть XML-данные, которые я читаю в наборе данных через xml-ридер.
Сгенерированные таблицы имеют несколько отношений, но в основном родительский узел к дочернему узлу.
Я планирую читать несколько файлов каждый день и объединять файлы на сервере sql. Где они могут быть легко использованы другими системами.
Учитывая файл XML, дочерние узлы имеют последовательные идентификаторы для каждого узла, например.
<main mainGUID='BlahWeSayItIsUnique' stuff type=1>
<children thingy Number>
<child other things>
<child other things>
Дочерние элементы получат children_Id в качестве первичного ключа, а дочерние элементы получат children_id в качестве отношения и свой собственный child_Id в качестве первичного ключа. Эти числа будут последовательными в 1...n , поэтому в каждом xml-файле эти значения идентификатора наверняка будут дублироваться.
Итак, каков правильный метод или хороший метод для вставки данных без дублирования идентификаторов? Должен ли я получить последние вставленные значения id серверов sql, а затем изменить таблицы данных, которые существуют в C # datatable в памяти, а затем вставить в sql?
Или есть лучший способ, например, метод управления версиями с использованием GUID из корневого узла?
EDIT: я получаю xml-файлы из внешнего источника, они поставляются с данными как есть. Я читаю эти XML-файлы в набор данных, который в основном дает мне 8 таблиц, и строки в таблицах являются последовательными, а таблицы связаны друг с другом на основе этого порядкового номера.
Данные уже имеют назначенный последовательный идентификатор, так как мне вставить эти записи в базу данных SQL без дублирования ранее импортированных файлов xml?