10

かなりまっすぐ進む直接ルートはありますか?(つまり、SQL Server は XML を読み取ることができます)

それとも、XML を解析し、通常の方法で ADO.Net を介して個々の行またはバッチ更新として転送するのが最善でしょうか?

大規模で複雑なストアド プロシージャを含むソリューションが存在する可能性があることは認識しています。これに完全に反対しているわけではありませんが、ビジネス ロジックのほとんどを C# コードに含めることを好む傾向があります。SQLXMLBulkLoad を使用したソリューションを見たことがありますが、かなり複雑な SQL コードが必要なようです。

参考までに、一度に約 100 行を処理し、それぞれに約 50 個の小さなデータ (文字列と整数) を使用します。これは最終的に毎日のバッチ ジョブになります。

提供できるコード スニペットは、非常に高く評価されます。

4

5 に答える 5

14

SQL Server 2005 以降には、XML を格納できる "XML" と呼ばれるデータ型があります - 型なしまたは XSD スキーマで型付き。

基本的に、XML リテラル文字列から XML 型の列に入力できるため、通常の INSERT ステートメントを使用して XML の内容をそのフィールドに簡単に入力できます。

マルク

于 2009-04-01T04:47:24.463 に答える
4

関数 OPENXML とストアド プロシージャ sp_xml_preparedocument を使用して、XML を行セットに簡単に変換できます。

于 2009-04-01T04:45:09.727 に答える
2

SQL Server 2008 (または 2005) を使用している場合は、xmlネイティブ データ型です。XSD スキーマを変数に関連付けたりxml、タイプの列に直接挿入したりできますxml

于 2009-04-01T04:47:39.143 に答える
1

Xml データと Xml ドキュメントは異なる意味を持つ場合があります。xml 型がデータに適している場合、書式設定は保存されません (空白は削除されます)。そのため、場合によっては (構成ファイルなど)、最適なオプションは nvarchar です。

于 2015-08-25T07:26:25.943 に答える