0

SQL Server (2008) のテーブル値関数から Open XML 形式で行を返そうとしています。結果の順序が、TVF の出力に挿入する順序と同じであることが保証されていないことを示唆する "for xml explicit" で結果を選択すると、エラーが発生することがあります。

だから私の最初の質問は:そうですか?

もしそうなら、私の次の質問は次のとおりです。これを回避する方法はありますか? これまでに思いついた最善の方法は、TVF 出力に id 列を含め、それを呼び出すときに他の列のみを選択し、id で並べ替えることです。ここでの問題は、* を選択するだけでなく、毎回すべての列を指定する必要があることです。これは、この場合は非常に厄介です (特に、これらの TVF が 42 個あり、すべてが異なる列であるため)。

TVF と Explicit Open XML が混在していないだけなのですか (これらは非常に適しているように見えるため、これは非常に残念なことです)、それとも役立つ何かが欠けているのでしょうか?

4

1 に答える 1

1

ひとつの妥協点を見つけました。まだ少し厄介ですが、すべての列を指定する必要があるほど悪くはありません。

オープン xml 形式の列を「非表示」としてマークできます。


[Tagname!Tagnumber!!hide]

そのフォームに続く名前で出力にID列を追加すると、外部選択でそれを注文できますが、「xml明示的」に使用するとxml出力に参加しません。

私はまだ「うまくいった」という順序を望んでいますが、それが不可能な場合は、興味のある人のためにこの発見を共有する必要があると思いました.

于 2009-08-28T10:53:51.270 に答える