i am rommel

Starting to write my own history

Xml and SQL Server 2008


   Oct 02

Xml and SQL Server 2008

Xml manipulation in SQL Server 2008 is a breeze.

DECLARE @CardInfo XML ;
SET @CardInfo = N'<CARDINFO>
                 <CARD>
                     <ID>1</ID>
                     <ID>2</ID>
                 </CARD>
                 <STATUS>1</STATUS>
                 <PURPOSE>1</PURPOSE>
                 <CARDVALUE>120.32</CARDVALUE>
                 <ACTIVATIONDATE>20090101</ACTIVATIONDATE>
                 <EXPIRATIONDATE>20100101</EXPIRATIONDATE>
                 <PRODUCTID>1</PRODUCTID>
                 <PACKAGEID></PACKAGEID>
                 <SESSIONID></SESSIONID>
                 <SEMESTERID></SEMESTERID>
    </CARDINFO>
    <REASON>For A Change naman</REASON>'
 
 
SELECT  x.node.value('(.)[1]', 'int') CardID,
        x.node.value('(/CARDINFO/STATUS)[1]', 'int') StatusID,
        x.node.value('(/CARDINFO/PURPOSE)[1]', 'int') PurposeID,
        x.node.value('(/CARDINFO/CARDVALUE)[1]', 'DECIMAL(18,2)') CardValue,
        x.node.value('(/CARDINFO/ACTIVATIONDATE)[1]', 'DATETIME') ActivationDate,
        x.node.value('(/CARDINFO/EXPIRATIONDATE)[1]', 'DATETIME') ExpirationDate,
        x.node.value('(/CARDINFO/PRODUCTID)[1]', 'int') ProductID,
        x.node.value('(/CARDINFO/PACKAGEID)[1]', 'int') PackageID,
        x.node.value('(/CARDINFO/SESSIONID)[1]', 'int') SessionID,
        x.node.value('(/CARDINFO/SEMESTERID)[1]', 'int') SemesterID,
        x.node.value('(/REASON)[1]', 'NVARCHAR(MAX)') Reason
FROM    @CardInfo.nodes('/CARDINFO/CARD/ID') x ( node )

You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

blog comments powered by Disqus