XML データ変更言語 (XML DML)

適用対象:yesSQL Server (サポートされているすべてのバージョン) Yes Azure SQL Database Yes Azure SQL Managed Instance

XML DML (XML データ変更言語) は、XQuery 言語の拡張言語です。 W3C で定義されているように、XQuery 言語には、データ操作 (DML) の部分がありません。 このトピックで紹介する XML DML および XQuery 言語には、xml データ型に対して使用できる完全な機能のクエリおよびデータ変更言語が提供されます。

XML DML では、XQuery に次のキーワードが追加されました。これらのキーワードでは、大文字と小文字が区別されます。

  • insert

  • delete

  • replace value of

xml データ型と列 (SQL Server)」で説明されているように、 xml 型の変数と列を作成し、それらに xml ドキュメントまたは xml フラグメントを割り当てることができます。 このような XML インスタンスを変更または更新するには、次の操作を実行します。

一部の属性では、挿入や削除、値の変更ができないので注意してください。 次に例を示します。

  • 型指定または型指定されていない xml の場合 属性は xmlnsxmlns: *、および xml: baseです。

  • 型指定された xml の場合のみ、属性に xsi:nil、および xsi:type を使用できます。

その他の制限には、次のようなものがあります。

  • xml の型指定の有無にかかわらず、xml:base 属性を挿入すると、エラーになります。

  • 型指定された xml の場合、xsi:nil 属性を削除または変更すると、エラーになります。 型指定されていない xml の場合は、この属性を削除したり、変更したりすることができます。

  • 型指定された xml の場合、xs:type 属性の値を変更すると、エラーになります。 型指定されていない xml の場合は、この属性の値を変更できます。

型指定された xml インスタンスを変更する場合、最終的な形式が、その型の有効なインスタンスである必要があります。 そうでない場合は、検証エラーが返されます。

参照

insert (XML DML)
delete (XML DML)
replace value of (XML DML)
型指定された XML と型指定されていない XML の比較
XML データのインスタンスの作成
xml データ型メソッド