即使我的同事说不可能,我也在努力解决问题。我们的数据库中已经存在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,请不要犹豫,教育我。
答案 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]