FORXMLEXPLICITを使用してXMLを生成する1000行のストアドプロシージャを継承しました。私の問題は、それがほとんどの場合機能することです。一部のシナリオでは、次のエラーが発生します。
親タグID2はオープンタグに含まれていません。FOR XML EXPLICITでは、最初に親タグを開く必要があります。結果セットの順序を確認してください。番号:6833重大度:16状態:1
これをトラブルシューティングする方法についてのアイデアが必要です。ネストが失敗している場所を見つける必要があります。親行が発行されていないのに、子行が発行されている可能性があります。さらに悪いことに、この問題はテストシステムでのみ発生し、本番データの一部が欠落している可能性があります。問題は、何千もの行からこれを見つける方法です。
確かに存在しないという1つのワイルドなアイデア:SQL Serverには、行が正しい順序であるかどうかを判断するために使用するアルゴリズムがあります。私の結果セットを(FOR XML EXPLICITなしで)見て、問題がどこにあるかを見つけて、それについて教えてくれるツールがあれば、(ありそうもないとしても)素晴らしいでしょう。
そのようなツールがない場合は、これをデバッグする方法についての提案を歓迎します。XML(動作する場合)は4レベルの深さです!
更新:これまでのすべての回答に感謝します。これは、不適切に編集されたストアドプロシージャの問題のようです。大きなセクションは「/*/」コメントでコメント化されました-コードにすでに「/*/」コメントがある場合はうまく機能しません...答えが確実になったら、もう一度更新します。