Pregunta

¿Hay una ruta directa que es bastante sencillo? (Es decir, se puede leer SQL Server XML)

O, es la mejor manera de analizar el XML y sólo la transferencia de la manera habitual a través de ADO.Net ya sea como filas individuales o tal vez una actualización por lotes?

Me doy cuenta de que puede haber soluciones que implican grandes complejos procedimientos almacenados - aunque no estoy totalmente opuesto a esto, tiendo a preferir tener la mayor parte de mi lógica de negocio en el código C #. He visto una solución utilizando SQLXMLBulkLoad, pero parecía requerir código SQL bastante complejo.

A modo de referencia, voy a estar trabajando con cerca de 100 filas a la vez con unos 50 pequeños trozos de datos para cada uno (cadenas y enteros). Esto a la larga se convertirá en un trabajo por lotes todos los días.

Cualquier fragmentos de código que puede aportar sería muy apreciada.

¿Fue útil?

Solución

SQL Server 2005 y hasta tienen un tipo de datos llamado "XML" que se puede almacenar en XML -. Untyped oa máquina con un esquema XSD

Puede básicamente llenar columnas de tipo XML desde una cadena literal XML, por lo que puede simplemente usar una instrucción INSERT normal y llenar el contenido XML en ese campo.

Marc

Otros consejos

Puede utilizar la función OPENXML y almacenados sp_xml_preparedocument procedimiento para convertir fácilmente su XML en conjuntos de filas.

Si está utilizando SQL Server 2008 (o 2005), que tiene un tipo de datos nativa xml. Puede asociar un esquema XSD con variables xml, e insertar directamente en columnas de tipo xml.

Sí, SQL Server 2005 y anteriormente se puede analizar XML fuera de la caja.

Se utilizan los nodos, los métodos de valor y de consulta para descomponerlo forma en que desea, si los valores o atributos

Algunos taponamiento descarada:

Los datos XML y documentos XML pueden tener un significado diferente. Cuando el tipo XML es bueno para los datos, no se guarda el formato (espacios en blanco eliminados), por lo que en algunos casos (por ejemplo, archivos cofiguration) la mejor opción es nvarchar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top