使用 SQL Server 2008。
我有一个包含单列和单行的表变量。
如果我这样做:
Declare @testsToRun Table ( testsId BigInt )
Insert Into @testsToRun
Select testsId From tests Where testsId = 10
Select Top 1 * From @testsToRun
For Xml Auto , Type , Root('testMessage')
我得到的 XML 看起来像这样:
<testMessage>
<_x0040_testsToRun testsId="10" />
</testMessage>
当我真正想要的是:
<testMessage>
<testsToRun testsId="10" />
</testMessage>
如果行源是一个表,那似乎工作得很好。当它是一个表变量时,我得到一个我不想要的子元素标签,我想要testsToRun
并不是_x0040_testsToRun
.
如何修改 FOR XML 语句/子句以获得正确的输出?
Thanks.
试试这个 - 使用FOR XML PATH
并使用您使用的列别名定义输出结构:
SELECT TOP 1
testsId AS '@testsId'
FROM
@testsToRun
FOR XML PATH('testsToRun'), ROOT('testMessage')
给我:
<testMessage>
<testsToRun testsId="10" />
</testMessage>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)