0

我正在尝试从 SQL Server (2008) 中的表值函数返回 Open XML 表单中的行。当我使用“for xml explicit”选择结果时,我偶尔会遇到错误,这表明结果的顺序不能保证与我插入 TVF 输出的顺序相同。

所以我的第一个问题是:是这样吗?

如果是这样,我的下一个问题是:有没有办法解决这个问题?到目前为止,我能想到的最好的方法是在 TVF 输出中包含一个 id 列,然后在我调用它时只选择其他列,并按 id 排序。这里的问题是,这意味着我每次都必须指定所有列,而不是只选择 *,这在这种情况下真的很尴尬(特别是因为我有 42 个这些 TVF - 都有不同的列)。

TVF 和 Explicit Open XML 是否不能混合使用(这将是一个真正的耻辱,因为它们似乎非常适合),还是我错过了一些有用的东西?

4

1 回答 1

1

我找到了一种折衷方案。它仍然有点尴尬,但没有指定所有列那么糟糕。

您可以将开放 xml 格式的列标记为“隐藏”:


[Tagname!Tagnumber!!hide]

如果我在输出中添加一个标识列,其名称遵循该表单,我可以在我的外部选择中对其进行排序,但如果我使用“xml 显式”,它将不会参与 xml 输出。

我仍然宁愿命令“刚刚工作”,但如果那不可能,我想我应该与任何感兴趣的人分享这个发现。

于 2009-08-28T10:53:51.270 回答