none
使用XPATH插入xml 节点到xml类型列时,应该怎么做? RRS feed

  • 问题

  • create table #t
    (
    	c1 int,
    	c2 xml default '<root/>'
    )
    insert into #t(c1) values(1)
    
    declare @id uniqueidentifier,
               @date datetime
    set @id = newid()
    set @date = getdate()
    
    update #t
    set c2.modify('insert <item id="sql:variable("@id")" date="sql:variable("@date")" /> after (/root)[1]')
    
    报错:XQuery [#t.c2.modify()]: 在 '=' 旁的标识符中找到的源字符 0x40 无效。
    然后修改成这样:
    declare @id uniqueidentifier,
    @date datetime,
    @xml xml
    set @id = newid()
    set @date = getdate()
    set @xml = '<item id="'+convert(varchar(36),@id) +'" date="' + convert(varchar(20),@date) + '" /> '
    
    update #t
    set c2.modify('insert sql:variable("@xml") after (/root)[1]')
    任然报错:XQuery: 在 XQuery 中不支持 SQL 类型 'xml'。

    然后我查看msdn实例:http://msdn.microsoft.com/en-us/library/ms175466.aspx 

    B. Inserting multiple elements into the document 实例

    任然报错。

    请问要达到这样的目的。我该怎么写?


    郭鹏
    2010年3月13日 10:15

全部回复