Crear vistas sobre columnas XML

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Puede utilizar una columna de tipo xml para crear vistas. En el ejemplo siguiente se crea una vista en la que se recupera el valor de una columna de tipo xml mediante el método value() del tipo de datos 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

Ejecute la consulta siguiente con la vista:

SELECT *
FROM   MyView;

El resultado es el siguiente:

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

Tenga en cuenta los puntos siguientes sobre cómo utilizar el tipo de datos xml para crear las vistas:

  • El tipo de datos xml se puede crear en una vista materializada. La vista materializada no puede basarse en un método de tipo de datos xml. Sin embargo, puede convertirse en una colección de esquemas XML distinta del tipo de columna xml de la tabla base.

  • El tipo de datos xml no se puede utilizar en vistas distribuidas con particiones.

  • Los predicados de SQL que se ejecutan con la vista no se insertarán en la expresión XQuery de la definición de vista.

  • Los métodos del tipo de datos xml de una vista no son actualizables.