Share via


XML アップデートグラムのガイドラインと制限 (SQLXML 4.0)

XML アップデートグラムを使用する場合は、次の点に注意してください。

  • アップデートグラムで挿入操作を行う場合に、<before> ブロックと <after> ブロックの組が 1 つだけの場合は、<before> ブロックを省略できます。逆に、削除操作では、<after> ブロックを省略できます。

  • アップデートグラムにおいて、<sync> タグに複数の <before> ブロックと <after> ブロックを使用する場合は、<before><after> の対になるよう、<before> ブロックと <after> ブロック両方を指定する必要があります。

  • アップデートグラムの更新は、XML スキーマで提供される XML ビューに適用されます。したがって、既定のマッピングが正しく行われるようにするには、アップデートグラムでスキーマ ファイル名を指定するか、ファイル名を指定しない場合は、要素名と属性名がデータベースのテーブル名と列名に一致している必要があります。

  • SQL Server 2005 で SQLXML 4.0 を使用する場合、アップデートグラムのすべての列値は、子要素の XML ビューを構成するため提供される XDR スキーマまたは XSD スキーマで明示的にマップされる必要があります。この動作は以前のバージョンの SQLXML とは異なります。以前のバージョンでは、sql:relationship 注釈で列の値が外部キーの一部として暗黙的に指定されていれば、スキーマでマップされない列値も許可されていました。この変更は、子要素への主キー値の割り当てには影響しません。SQLXML 4.0 では、子要素に対して明示的に値が指定されていない場合でも、値が割り当てられます。

  • アップデートグラムを使用してバイナリ列 (SQL Server image データ型など) のデータを変更する場合は、マッピング スキーマを使用して、SQL Server データ型を sql:datatype="image" のように指定し、XML データ型を dt:type="binhex"dt:type="binbase64" のように指定する必要があります。バイナリ列のデータは、アップデートグラム内に指定する必要があります。マッピング スキーマで指定される sql:url-encode 注釈は、アップデートグラムでは無視されます。

  • XSD スキーマを記述するときに、sql:relation 注釈または sql:field 注釈に指定する値に特殊文字が含まれる場合、たとえば、スペースを含むテーブル名 "Order Details" を指定する場合などは、値を "[Order Details]" のように角かっこで囲む必要があります。

  • アップデートグラムの使用で、チェーン リレーションシップはサポートされません。たとえば、テーブル A とテーブル C が、テーブル B を使用するチェーン リレーションシップで関連付けられている場合は、アップデートグラムの実行時に次のエラーが発生します。

    There is an inconsistency in the schema provided.
    

    スキーマとアップデートグラムの両方が正しく、有効な形式であっても、チェーン リレーションシップが存在すると、このエラーが発生します。

  • アップデートグラムでは、更新中に image 型データをパラメータとして引き渡すことはできません。

  • text/ntext や image のようなバイナリ ラージ オブジェクト (BLOB) 型は、アップデートグラムの <before> ブロックでは使用しないでください。使用すると、これらが同時実行制御で使用され、SQL Server で、BLOB 型の比較の制限によって問題が発生する可能性があります。たとえば、text データ型の列を比較するには WHERE 句で LIKE キーワードを使用しますが、データ サイズが 8 KB を超える BLOB 型の場合、この比較は失敗します。

  • ntext データで特殊文字を使用すると、BLOB 型の比較の制限によって、SQLXML 4.0 で問題が発生する可能性があります。たとえば、アップデートグラムの <before> ブロックに "[Serializable]" を使用すると、ntext 型列に対する同時実行制御チェックで操作が失敗し、次の SQLOLEDB エラー説明が返されます。

    Empty update, no updatable rows found   Transaction aborted
    

参照

関連項目

アップデートグラムのセキュリティに関する注意点 (SQLXML 4.0)

ヘルプおよび情報

SQL Server 2005 の参考資料の入手