ビューの変更

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

ビューを定義した後、SQL Server Management Studio または Transact-SQL を使用することで、ビューを削除して再作成することなく、SQL Server データベース エンジンでビューの定義を変更することができます。

制限事項と制約事項

  • 依存オブジェクトが無効になるような変更を行わない限り、ビューを変更しても、ストアド プロシージャやトリガーなどの依存オブジェクトには影響しません。

  • 現在使用されているビューを ALTER VIEW を使用して変更する場合、データベース エンジンではビューに対して排他スキーマ ロックが設定されます。 ロックが許可され、ビューのアクティブ ユーザーがいなくなると、データベース エンジンではプロシージャ キャッシュからビューのすべてのコピーが削除されます。 ビューを参照している既存のプランはキャッシュに残りますが、呼び出されると再コンパイルされます。

  • ALTER VIEW は、インデックス付きビューに適用できますが、そのビューのすべてのインデックスを無条件で削除します。

アクセス許可

ALTER VIEW を実行するには、少なくとも OBJECT に対する ALTER 権限が必要です。

SQL Server Management Studio の使用 [SQL Server]

  1. オブジェクト エクスプローラーで、ビューがあるデータベースの横にあるプラス記号を選択し、[ビュー] フォルダーの横にあるプラスサインを選択します。

  2. 変更するビューを右クリックし、 [デザイン]を選択します。

  3. クエリ デザイナーのダイアグラム ペインで、次の方法を使用してビューを変更します。

    1. 追加または削除する要素のチェック ボックスをオンまたはオフにします。

    2. ダイアグラム ペイン内で右クリックし、[テーブルの追加] を選択します。次に、[テーブルの追加] ダイアログ ボックスで、ビューに追加する列を選択します。

    3. 削除するテーブルのタイトル バーを右クリックし、 [削除]をクリックします。

  4. [ファイル] メニューの [ビュー名を保存]を選びます。

Transact-SQL の使用

  1. オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。

  2. 標準バーで、 [新しいクエリ] を選択します。

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、ビューを作成した後、ALTER VIEW を使用してビューを変更します。 ビュー定義に WHERE 句が追加されています。

    USE AdventureWorks2022;
    GO
    
    -- Create a view
    CREATE VIEW HumanResources.EmployeeHireDate
    AS
    SELECT p.FirstName,
         p.LastName,
         e.HireDate
    FROM HumanResources.Employee AS e
    INNER JOIN Person.Person AS p
         ON e.BusinessEntityID = p.BusinessEntityID;
    
    -- Modify the view by adding a WHERE clause to limit the rows returned
    ALTER VIEW HumanResources.EmployeeHireDate
    AS
    SELECT p.FirstName,
         p.LastName,
         e.HireDate
    FROM HumanResources.Employee AS e
    INNER JOIN Person.Person AS p
         ON e.BusinessEntityID = p.BusinessEntityID
    WHERE HireDate < CONVERT(DATETIME, '20020101', 101);
    GO
    

次のステップ