Вопрос

Есть ли прямой маршрут, который довольно прост?(т.е.может ли SQL Server читать XML)

Или лучше проанализировать XML и просто передать его обычным способом через ADO.Net либо в виде отдельных строк, либо в виде пакетного обновления?

Я понимаю, что могут быть решения, включающие большие сложные хранимые процедуры - хотя я не совсем против этого, я предпочитаю иметь большую часть своей бизнес-логики в коде C#.Я видел решение с использованием SQLXMLBulkLoad, но оно, похоже, требовало довольно сложного кода SQL.

Для справки: я буду работать примерно со 100 строками одновременно и примерно по 50 небольшими фрагментами данных для каждой (строки и целые числа).В конечном итоге это станет ежедневной пакетной работой.

Любые фрагменты кода, которые вы можете предоставить, будут очень признательны.

Это было полезно?

Решение

SQL Server 2005 и более поздние версии имеют тип данных под названием «XML», в котором вы можете хранить XML — нетипизированный или типизированный со схемой XSD.

По сути, вы можете заполнить столбцы типа XML из строки литерала XML, поэтому вы можете легко использовать обычный оператор INSERT и заполнить содержимое XML в это поле.

Марк

Другие советы

Вы можете использовать функцию OPENXML и хранимую процедуру sp_xml_preparedocument, чтобы легко преобразовать XML в наборы строк.

Если вы используете SQL Server 2008 (или 2005), у него есть xml собственный тип данных.Вы можете связать схему XSD с xml переменные и вставлять непосредственно в столбцы типа xml.

Да, SQL Server 2005 и более поздние версии могут анализировать XML «из коробки».

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

Какая-то бессовестная затычка:

Данные XML и документ XML могут иметь разное значение.Когда тип xml подходит для данных, он не сохраняет форматирование (пробелы удаляются), поэтому в некоторых случаях (например,файлы конфигурации) лучший вариант — nvarchar.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top