【发布时间】:2019-12-06 15:42:35
【问题描述】:
我目前正在尝试使用 SQL 语句生成 XML,该语句从表中返回数据,以及表名、列名和相关数据。所以表的结构加上数据。整个事情应该保持动态,这样一个表名的规范就足以生成xml。
因此,我希望是这样的:
<DynamicTable NAME="PARAMETER">
<Rows>
<DynamicColoumn NAME="PARAMETER_NAME" VALUE="PATH" />
<DynamicColoumn NAME="PARAMETER_VALUE" VALUE="D:\Work\test.xml" />
<DynamicColoumn NAME="PARAMETER_TYPE" VALUE="1" />
</Rows>
<Rows>
<DynamicColoumn NAME="PARAMETER_NAME" VALUE=".." />
<DynamicColoumn NAME="PARAMETER_VALUE" VALUE=".." />
<DynamicColoumn NAME="PARAMETER_TYPE" VALUE="1" />
</Rows>
</DynamicTable>
这里重要的是表名和列名与对应的数据记录。
目前我正在尝试使用 FOR XML EXPLICIT 来实现。但我未能将数据集分配给各个行。以及列名和数据集之间的分配。
我当前的 SQL:
SELECT
1 AS Tag,
NULL AS Parent,
IS_T.TABLE_NAME AS [DynamicTable!1!NAME],
NULL AS [DynamicColoumn!2!NAME],
NULL AS [DynamicColoumn!2!VALUE]
FROM
INFORMATION_SCHEMA.TABLES AS IS_T
WHERE
IS_T.TABLE_NAME = 'PARAMETER'
UNION ALL
SELECT
2 AS Tag,
1 AS Parent,
'PARAMETER' AS [DynamicTable!1!NAME],
P.PARA_NAME,
P.PARA_VALUE
FROM
PARAMETER AS P
FOR XML EXPLICIT
非常感谢您的帮助和方法!
【问题讨论】:
-
请为您需要的单个表格提供一个完整样本。
-
这已经通过我所代表的 XML 结构实现了。 XML 结构还指定了表的结构。带有“...”的值仅代表进一步的数据集,这些数据集也可能在表中。还是我误会了你?
标签: sql sql-server xml sql-server-2016 xml-generation