1

SQLServer2008を使用してテーブルのXML列にXMLを挿入するときに問題が発生します。

挿入します

<test></test>

SQLServer列はそれを次のように格納します。

<test />

これで、最新の形式が実際には正しい形式であり、最初の形式が実際には正しいXML構文ではないことがわかりましたが、顧客からのインポートで渡されたXMLを保持する必要があります。元の形で。

私たちはDB2を何年も使用しており、DB2は挿入されたXMLを変更しません。

だから私の質問は...SQLServer 2008のXML列でXML最適化を無効にすることは可能ですか?

4

1 に答える 1

1

SQL Serverは、XMLの意味的に正しい表現を最適化された形式で格納します。保存されるのは、入力した実際の文字列ではありません(XML「フラグメント」に解析され、最適化された方法で保存されます)。

ただし、同じ表現を列から再度レンダリングするように強制することはできません。SQLServerXMLは、XMLコンテンツの最適な文字列表現と見なされるものをレンダリングします。

本当に100%同一の表現が必要な場合は、XMLを文字列列として格納する必要があります(-(n)varchar(x)または(n)varchar(max)8000バイトを超えるストレージが必要な場合)

于 2012-10-11T07:24:34.617 に答える