Criar exibições sobre colunas XML

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

É possível usar uma coluna de tipo xml para criar exibições. O exemplo a seguir cria uma exibição na qual o valor de uma coluna do tipo xml é recuperado usando o método value() do tipo de dados xml.

-- Create the table.
CREATE TABLE T (
    ProductID INT PRIMARY KEY,
    CatalogDescription XML);
GO
-- Insert sample data.
INSERT INTO T VALUES(1,'<ProductDescription ProductID="1" ProductName="SomeName" />');
GO
-- Create view (note the value() method used to retrieve ProductName
-- attribute value from the XML).
CREATE VIEW MyView AS
  SELECT ProductID,
         CatalogDescription.value('(/ProductDescription/@ProductName)[1]', 'varchar(40)') AS PName
  FROM T;
GO

Execute a consulta a seguir em relação à exibição:

SELECT *
FROM   MyView;

Este é o resultado:

ProductID   PName
----------- ------------
1           SomeName

Observe os seguintes pontos sobre o uso do tipo de dados xml para criar exibições:

  • O tipo de dados xml pode ser criado em uma exibição materializada. A exibição materializada não pode se basear em um método de tipo de dados xml. No entanto ela pode ser convertida em uma coleção de esquema XML diferente da coluna de tipo xml na tabela base.

  • O tipo de dados xml não pode ser usado em exibições particionadas distribuídas.

  • Predicados SQL que são executados em relação à exibição não serão enviados por push para o XQuery da definição da exibição.

  • Os métodos do tipo de dados xml em uma exibição não são atualizáveis.