XML 列でビューを作成する

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

xml 型の列を使用して、ビューを作成することもできます。 次の例では、xml データ型の value() メソッドを使用して 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

このビューに対し、次のクエリを実行します。

SELECT *
FROM   MyView;

結果を次に示します。

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

xml データ型を使用してビューを作成する際には次の点に注意してください。

  • xml データ型は、具体化されたビュー内に作成できます。 具体化されたビューは、xml データ型のメソッドに基づくことはできません。 ただし、ベース テーブルの xml 型の列とは異なる XML スキーマ コレクションにキャストできます。

  • 分散パーティション ビューには xml データ型を使用できません。

  • ビューに対して実行される SQL 述語は、ビュー定義の XQuery には組み込まれません。

  • ビューの xml データ型メソッドは更新できません。