Каков наилучший подход для чтения данных XML и создания запроса для вставки значений в базу данных SQL Server? - PullRequest
6 голосов
/ 14 февраля 2009

Каков наилучший подход для чтения данных XML и построения запроса для вставки значений в БД SQL Server?

У кого-нибудь есть лучший подход для этого типа сценария?

Ответы [ 7 ]

1 голос
/ 14 февраля 2009

SQL 2005 имеет очень хорошие возможности XML. Это одна техника, использующая Параметры XML

1 голос
/ 14 февраля 2009

Лично я использую DataSet.ReadXML (). Затем он помещает все данные в DataTables в DataSet, а затем становится намного проще проходить и манипулировать данными.

0 голосов
/ 14 февраля 2009

Ваш вопрос не ясен по деталям:

Если у вас есть произвольные файлы XML, которые вы хотите вставить в таблицу базы данных, объявите столбец XML (SQL2005 +) и просто вставьте данные в виде строки.

Если у вас есть XML-файлы, привязанные к XML-схеме, вы можете объявить XML SCHEMA COLLECTION с помощью XSD, привязать столбец XML к этой коллекции XML-схем и вставить данные. SQL Server будет проверять каждое вставленное XML-значение на соответствие этому XSD.

Если вы хотите вручную анализировать данные XML, используйте XPath или XPathNavigator или XMLDocument.SelectNodes для извлечения данных и вставки их записи по порядку в таблицы БД.

Возможно, вы хотите более конкретно указать в своем вопросе, какие из альтернатив применимы к вашему делу.

0 голосов
/ 14 февраля 2009

Передайте данные в хранимую процедуру в виде документа XML в переменную с типом данных XML. Затем проанализируйте документ в рамках процедуры и загрузите данные в таблицу.

я привожу примеры здесь .

0 голосов
/ 14 февраля 2009

Напишите схему базы данных с аналогичной структурой для xml, затем напишите операторы Linq To Xml и Linq To Sql для вставки данных.

0 голосов
/ 14 февраля 2009

Если вам нужны довольно простые данные (то есть дочерние элементы первого уровня), то вариант, который я успешно использовал в прошлом, - это использовать XmlReader для чтения xml (для дочернего элемента за раз), представляя Облегченные данные IDataReader, которые SqlBulkCopy могут использовать для закачки данных. Примерно так . Если данные более сложные, используйте sqlxml / bulk load.

0 голосов
/ 14 февраля 2009

Знаете ли вы о функциях XML MS SQL Server 2005/8? Вы можете вставить XML строго типизированный непосредственно в виде столбца в SQL, а затем принудительно установить, что XML действителен для указанной схемы.

Вы можете даже индексировать столбцы в XML и запускать Xquery для него.

Можем ли мы получить больше информации о том, что вы хотите сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...