Help with OPEN XML

  • I am having problem with this SELECT statment


    DECLARE @RetVal int, @Doc varchar(8000), @iDoc int

    SELECT @Doc = '

    <AuditTrail>

     <AuditDateTime>2006-04-20T09:24:55</AuditDateTime>

     <UserName>Unknown</UserName>

    <ChangesXml><Tickets>  <Ticket>

        <TicketId>554</TicketId>

        <ProjectName>Dispatch</ProjectName>

        <CreatorName />

        <ReportedBy>Steve</ReportedBy>

        <Status />

        <Severity />

        <Name>Backup Failed</Name>

        <Description />

        </Ticket></Tickets></ChangesXml></AuditTrail>

    '

    EXEC @RetVal = sp_xml_preparedocument @idoc OUTPUT, @doc

    SELECT *

    FROM OPENXML (@idoc, N'/AuditTrail/ChangesXML/Tickets/Ticket',2)

    with (TicketID int '@TicketID',

          AuditDateTime varchar (100) ..///@AuditDateTime  )


    I can't get the TicketID shown correctly.  I also having problem with the syntax to display the AuditDateTime.  Please advice.  Thanks.

  • look like the correct syntax for AuditDateTime is ../../../../AuditDateTime.  However it still shows nothing. 

  • i finally got it works.

  • So what did you do to get it to work? Enquiring minds want to know.

  • I don't know why but the column name TicketId is case-sensitive.  If I used TicketID I got null. 


    DECLARE @RetVal int, @Doc varchar(8000), @iDoc int

    SELECT @Doc = '

    <AuditTrail>

     <AuditDateTime>2006-04-20T09:24:55</AuditDateTime>

     <UserName>Unknown</UserName>

    <ChangesXml><Tickets>  <Ticket>

        <TicketId>554</TicketId>

        <ProjectName>Dispatch</ProjectName>

        <CreatorName />

        <ReportedBy>Steve</ReportedBy>

        <Status />

        <Severity />

        <Name>Backup Failed</Name>

        <Description />

        </Ticket></Tickets></ChangesXml></AuditTrail>

    '

    EXEC @RetVal = sp_xml_preparedocument @idoc OUTPUT, @doc

      SELECT * FROM OPENXML(@idoc, '/AuditTrail/ChangesXml/Tickets/Ticket', 2) WITH

      (TicketId varchar (10),

      ProjectName varchar (100),

      AuditDateTime varchar(80) '../../../AuditDateTime')

    EXEC sp_xml_removedocument @iDoc

  • Thanks!

Viewing 6 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply