Creazione di visteCreate Views over XML Columns

Le colonne di tipo xml possono essere utilizzate per la creazione di viste.You can use an xml type column to create views. Nell'esempio seguente viene creata una vista nella quale il valore di una colonna di tipo xml viene recuperato utilizzando il metodo value() del tipo di dati xml .The following example creates a view in which the value from an xml type column is retrieved using the value() method of the xml data type.

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

Eseguire la query seguente sulla vista:Execute the following query against the view:

SELECT *   
FROM   MyView  

Risultato:This is the result:

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

Notare i punti seguenti circa l'utilizzo del tipo di dati xml per creare viste:Note the following points about using the xml data type to create views:

  • Il tipo di dati xml può essere creato in una vista materializzata.The xml data type can be created in a materialized view. La vista materializzata non può essere basata su un metodo con tipo di dati XML,The materialized view cannot be based on an xml data type method. ma è possibile eseguirne il cast su una raccolta di XML Schema diversa dalla colonna di tipo xml nella tabella di base.However, it can be cast to an XML schema collection that is different from the xml type column in the base table.

  • Il tipo di dati xml non può essere utilizzato nelle viste partizionate distribuite.The xml data type cannot be used in Distributed Partitioned Views.

  • I predicati SQL in esecuzione sulla vista non saranno inseriti in XQuery per la definizione della vista.SQL predicates running against the view will not be pushed into the XQuery of the view definition.

  • I metodi con tipo di dati XML in una vista non sono aggiornabili.XML data type methods in a view are not updatable.