Créer des vues sur des colonnes XML

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Vous pouvez utiliser une colonne de type xml pour créer des vues. L’exemple suivant crée une vue dans laquelle la valeur d’une xml colonne de type est récupérée à l’aide de la value() méthode du type de données 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

Exécutez la requête suivante sur la vue :

SELECT *
FROM   MyView;

Voici le résultat obtenu :

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

Notez les points suivants à propos de l'utilisation du type de données xml pour créer des vues :

  • Le type de données xml peut être créé dans une vue matérialisée. La vue matérialisée ne peut pas être basée sur une méthode de type de données xml . En revanche, il peut être converti en une collection de schémas XML différente de la colonne de type xml de la table de base.

  • Le type de données xml ne peut pas être utilisé dans les vues partitionnée distribuées.

  • Les prédicats SQL s’exécutant sur la vue ne seront pas envoyés dans la XQuery de la définition de vue.

  • Les méthodes de type de données xml dans une vue ne sont pas modifiables.