在SQL Server中将变量设置为等于变量

时间:2014-01-31 15:38:53

标签: sql sql-server xml

即使我的同事说不可能,我也在努力解决问题。我们的数据库中已经存在XML,我希望能够从XML中获取单个属性,并将它们设置为与要使用的变量相等。到目前为止这是我的代码(不起作用)。

    declare @MyText varchar(10)

    declare @MyXML XML
    set @MyXML = '
    <ns0:TestXML xmlns:ns0="http://test.com">
    <TestValue>11</TestValue>
    </ns0:TestXML>'


   set @MyText = 
   (
       ;with XMLNAMESPACES ('http://test.com' as ns0)
       set @MyText = 
       (
           select 
               a.bo.value('(/ns0:TestXML2[1]/TestXML3)[1]','INT') as [Number]
           from @MyXML.nodes('ns0:TestXML') a(bo)
       )
   )

非常感谢任何帮助,谢谢。此外,如果我的逻辑完全不关于SQL如何使用XML,请不要犹豫,教育我。

1 个答案:

答案 0 :(得分:0)

如何做到这一点,它从提供的11返回XML,这是您想要的假设:

declare @MyText varchar(10)

declare @MyXML XML
set @MyXML = '
<ns0:TestXML xmlns:ns0="http://test.com">
<TestValue>11</TestValue>
</ns0:TestXML>'

;with XMLNAMESPACES ('http://test.com' as ns0)
    select @MyText =
        a.bo.value('(/ns0:TestXML)[1]','INT') 
    from @MyXML.nodes('ns0:TestXML') a(bo)

select @MyText as [TheImpossibleValue]
相关问题