ビューの変更
適用対象: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)
ビューを定義した後、SQL Server Management Studio または Transact-SQL を使用することで、ビューを削除して再作成することなく、SQL Server データベース エンジンでビューの定義を変更することができます。
制限事項と制約事項
依存オブジェクトが無効になるような変更を行わない限り、ビューを変更しても、ストアド プロシージャやトリガーなどの依存オブジェクトには影響しません。
現在使用されているビューを ALTER VIEW を使用して変更する場合、データベース エンジンではビューに対して排他スキーマ ロックが設定されます。 ロックが許可され、ビューのアクティブ ユーザーがいなくなると、データベース エンジンではプロシージャ キャッシュからビューのすべてのコピーが削除されます。 ビューを参照している既存のプランはキャッシュに残りますが、呼び出されると再コンパイルされます。
ALTER VIEW は、インデックス付きビューに適用できますが、そのビューのすべてのインデックスを無条件で削除します。
アクセス許可
ALTER VIEW を実行するには、少なくとも OBJECT に対する ALTER 権限が必要です。
SQL Server Management Studio を使用します。
オブジェクト エクスプローラーで、ビューがあるデータベースの横にあるプラス記号を選択し、[ビュー] フォルダーの横にあるプラスサインを選択します。
変更するビューを右クリックし、 [デザイン]を選択します。
クエリ デザイナーのダイアグラム ペインで、次の方法を使用してビューを変更します。
追加または削除する要素のチェック ボックスをオンまたはオフにします。
ダイアグラム ペイン内で右クリックし、[テーブルの追加] を選択します。次に、[テーブルの追加] ダイアログ ボックスで、ビューに追加する列を選択します。
削除するテーブルのタイトル バーを右クリックし、 [削除]をクリックします。
[ファイル] メニューの [ビュー名を保存]を選びます。
Transact-SQL の使用
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで、 [新しいクエリ] を選択します。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] を選択します。 この例では、ビューを作成した後、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