Erstellen von Ansichten über XML-Spalten

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed Instance

Sie können eine Spalte vom Typ xml zum Erstellen von Sichten verwenden. Im folgenden Beispiel wird eine Ansicht erstellt, in der der Wert aus einer xml Typspalte mithilfe der value() Methode des XML-Datentyps abgerufen wird.

-- 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

Führen Sie die folgende Abfrage für die Sicht aus:

SELECT *
FROM   MyView;

Dies ist das Ergebnis:

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

Beachten Sie die folgenden Punkte in Bezug auf das Erstellen von Sichten mit dem xml -Datentyp:

  • Der XML-Datentyp kann in einer materialisierten Ansicht erstellt werden. Die materialisierte Ansicht kann nicht auf einer XML-Datentypmethode basieren. Er kann jedoch in eine XML-Schemaauflistung umgewandelt werden, die sich von der XML-Typspalte der Basistabelle unterscheidet.

  • Der XML-Datentyp kann in verteilten partitionierten Ansichten nicht verwendet werden.

  • SQL-Prädikate, die für die Ansicht ausgeführt werden, werden nicht in die XQuery der Ansichtsdefinition übertragen.

  • Xml-Datentypmethoden in einer Ansicht sind nicht aktualisierbar.