Linguagem de modificação de dados XML (XML DML)

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

A Linguagem de Modificação de Dados XML (XML DML) é uma extensão da linguagem XQuery. Conforme definido pelo W3C, a linguagem XQuery não possui a parte de Manipulação de Dados (DML). O DML XML introduzido neste tópico, assim como a linguagem XQuery, fornece uma linguagem de consulta e modificação de dados totalmente funcional que pode ser usada contra o tipo de dado xml .

O DML ML adiciona as seguintes palavras-chave sensíveis a maiúsculas minúsculas ao XQuery:

  • Inserção

  • delete

  • substituir valor de

Como descrito em XML Data Type and Columns (SQL Server), pode criar variáveis e colunas do tipo xml e atribuir-lhes documentos ou fragmentos XML. Para modificar ou atualizar estas instâncias XML, faça o seguinte:

Note que existem alguns atributos que não podem ser inseridos, eliminados ou ter o seu valor modificado. Por exemplo:

  • Para xml tipado ou não tipado, os atributos são xmlns, xmlns:* e xml:base.

  • Para xml tipado apenas, os atributos são xsi:nil e xsi:type.

Outras restrições incluem as seguintes:

  • Para xml tipado ou não tipado, inserir o atributo xml:base falhará.

  • Para xml tipo, eliminar e modificar o atributo xsi:nil falha. Para XML não tipado, podes eliminar o atributo ou modificar o seu valor.

  • Para xml tipado, modificar o valor do atributo xs:type falhará. Para XML não tipado, podes modificar o valor do atributo.

Quando se modifica uma instância XML tipada, o formato final deve ser uma instância válida desse tipo. Caso contrário, é devolto um erro de validação.