J'ai un tableau simple et je veux stocker son contenu dans un fichier XML sur le disque dur. Il devrait y avoir un élément racine pour la table entière, un élément par ligne de table et un élément enfant par colonne de table.
Quelles sont mes possibilités?
Merci beaucoup Tomas
Utilisez le FOR XML dans votre requête.
E.g: select * from table1 FOR XML AUTO
voir ceci -> http://searchsqlserver.techtarget.com/tip/0,289483,sid87_gci1265579,00.html
Alternativement, vous pouvez créer votre propre code XML dans votre code t-sql via des curseurs ou dans le code de votre application, la méthode la plus longue pour le faire.
Et si vous avez besoin de plus de contrôle sur l'apparence du XML résultant, consultez la nouvelle instructionFOR XML PATH
dans SQL Server 2005 et versions ultérieures.
Une déclaration comme celle-ci (basée sur la tristement célèbre base de données Northwind
):
SELECT
CustomerID as "@CustomerID",
CompanyName,
Address as "address/street",
City as "address/city",
Region as "address/region",
PostalCode as "address/Zip",
Country as "address/country",
ContactName as "contact/name",
ContactTitle as "contact/title",
Phone as "contact/phone",
Fax as "contact/fax"
FROM Customers
FOR XML PATH('Customer')
donnera un résultat comme celui-ci:
<Customer CustomerID="ALFKI">
<CompanyName>Alfreds Futterkiste</CompanyName>
<address>
<street>Obere Str. 57</street>
<city>Berlin</city>
<Zip>12209</Zip>
<country>Germany</country>
</address>
<contact>
<name>Maria Anders</name>
<title>Sales Representative</title>
<phone>030-0074321</phone>
<fax>030-0076545</fax>
</contact>
</Customer>
C'est plutôt difficile de trouver un autre moyen ...
Marc