この問題に対するさまざまな解決策を見つけましたが、うまくいかないようです。約 6 つのネストされた行を含む単一の結果を返すクエリがあります。大まかな形状は次のとおりです。
<ItemGroup>
<Item />
<Item />
<Item />
<Item />
</ItemGroup>
各項目には約 8 つの要素があります。FOR XML AUTO, TYPE を使用して XML を生成しています。クエリには、内部の行を生成するためのネストされたクエリがあります。ここまでは順調ですね。ただし、クエリを実行すると、XML は常に256 文字でトリミングされます。これを修正するための最初の提案は、XML データを [ツール]、[オプション]、[クエリ結果]、[SQL Server]、[グリッドへの結果]、[XML データ] で返される最大サイズを無制限 (または 5MB、両方で十分) に変更することです。理にかなっているようです。うまくいきませんでした。
グリッドに出力すると、閉じられていない文字列に関するエラーが発生します。
次の修正の試みは、結果をファイルに出力することでした。そこに返されるデータの量 (最大) を変更するオプションが表示されないため、無制限であると想定しています。ただし、結果をファイルにダンプすると、結果テキストが 1 行 x 256 列になるというまったく同じ問題が発生しました。
これは修正できますか?これは SSMS 2014 のバグですか? 正確なバージョンは 12.0.2000.8 です。次のステップは、結果の行を node.js スクリプトに送信し、代わりにそこで XML を操作することです。
編集:ノードを介してクエリを実行しましたが、行っていたシェーピングFOR XML AUTO, TYPE
は明らかにおかしいです。結果のドキュメントは 35MB でした。しかし、シェーピングなしでクエリを実行すると、9 行の結果セットが得られます。それでも、ファイルに直接出力する場合でも、SSMS でそれを理解することはできませんでした。