Erstellen von Sichten über XML-Spalten
Sie können eine Spalte vom Typ xml
zum Erstellen von Sichten verwenden. Im folgenden Beispiel wird eine Sicht erstellt, in der mithilfe der value()
-Methode des xml
-Datentyps der Wert aus einer Spalte vom Typ xml
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 Sicht erstellt werden. Die materialisierte Sicht 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 nicht in verteilten partitionierten Sichten verwendet werden.SQL-Prädikate, die für die Sicht ausgeführt werden, werden nicht in die XQuery der Sichtdefinition verschoben.
XML-Datentypmethoden in einer Sicht sind nicht aktualisierbar.