• The value returned from executing the system stored procedure "sp_xml_removedocument" is 1 indicating an error has occured. The code closely follows examples in BOL and elsewhere. "sp_xml_removedocument" should return 0 just as "sp_xml_preparedocument" does.

    If an error has occured then the XML document could still be residing in memory!

    The following T-SQL code example illustrates the problem I'm having. I run this code in the query analyzer. I've also compiled it into a stored procedure and received the same result output (i.e. 1). I'm using SQL Server 2000(sp2) on Win2K(sp2).

    DECLARE @hdoc int, @return int, @doc varchar(1000), @xmlPath varchar(15)

    SET @doc = '

    <?xml version="1.0"?>








    SET @xmlPath = '/root'

    -- load to memory

    EXEC @return = sp_xml_preparedocument @hdoc OUTPUT, @doc

    PRINT 'Prepare = ' + CAST(@return AS varchar)

    -- select all

    SELECT *

    FROM OPENXML(@hdoc, @xmlPath, 1)

    -- remove from memory

    EXEC @return = sp_xml_removedocument @hdoc

    PRINT 'Remove = ' + CAST(@return AS varchar)


  • Just tried it and I get a 1 also as the result code from the removal.

    I suspect this is a bug, but I will have to check.

    BTW, I assume you mean SQL, SP1

    Steve Jones


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

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