2013-03-07 4 views
8

abbiamo un tavolo semplice e hanno bisogno di convertire in XMLSpeciale per XML in SqlServer

Declare @Person TABLE 
( [BusinessEntityID] [int] NOT NULL, 
    [PersonType] [varchar](2) NULL, 
    [Title] [varchar](30) NULL, 
    [FirstName] [varchar](30) NULL, 
    [MiddleName] [varchar](30) NULL, 
    [LastName] [varchar](30) NULL) 

Insert Into @Person Values(10001,'IN','Article','Carolyn','Jo','Alonso') 

abbiamo bisogno di questo xml per l'uscita con Per XML in SQL Server

<?xml-stylesheet type='text/xsl' href='result.xsl'?> 
<documents> 
    <document> 
    <field name="BusinessEntityID">10001</field> 
    <field name="PersonType">IN</field> 
    <field name="Title">Article</field> 
    <field name="FirstName">Carolyn</field> 
    <field name="MiddleName">Jo</field> 
    <field name="LastName">Alonso</field> 
    </document> 
</documents> 

risposta

8

La seguente query XML PATH dovrebbe prendi la maggior parte del modo. Hai solo bisogno di aggiungere l'intestazione del foglio di stile.

SELECT 
'BusinessEntityID' AS 'document/field/@name' 
, BusinessEntityID AS 'document/field' 
, '' AS 'document' 
, 'documentType' AS 'document/field/@name' 
, PersonType AS 'document/field' 
, '' AS 'document' 
, 'Title' AS 'document/field/@name' 
, Title AS 'document/field' 
, '' AS 'document' 
, 'FirstName' AS 'document/field/@name' 
, FirstName AS 'document/field' 
, '' AS 'document' 
, 'MiddleName' AS 'document/field/@name' 
, MiddleName AS 'document/field' 
, '' AS 'document' 
, 'LastName' AS 'document/field/@name' 
, LastName AS 'document/field' 
, '' AS 'document' 
FROM @Person 
FOR XML PATH(''), ROOT('documents') 
+0

molto serbatoi molto – jozi