ビューの変更Modify Views

SQL Server 2014SQL Server 2014 では、ビューの定義後にビューの削除や再作成を行わずに、 SQL Server Management StudioSQL Server Management Studio または Transact-SQLTransact-SQLを使用して、ビューの名前または定義を変更できます。After you define a view, you can modify its definition in SQL Server 2014SQL Server 2014 without dropping and re-creating the view by using SQL Server Management StudioSQL Server Management Studio or Transact-SQLTransact-SQL.

このトピックの内容In This Topic

はじめにBefore You Begin

制限事項と制約事項Limitations and Restrictions

  • 依存オブジェクトが無効になるような変更を行わない限り、ビューを変更しても、ストアド プロシージャやトリガーなどの依存オブジェクトには影響しません。Modifying a view does not affect any dependent objects, such as stored procedures or triggers, unless the definition of the view changes in such a way that the dependent object is no longer valid.

  • 現在使用されているビューを ALTER VIEW を使用して変更する場合、 データベース エンジンDatabase Engine はビューに対して排他スキーマ ロックを設定します。If a view currently used is modified by using ALTER VIEW, the データベース エンジンDatabase Engine takes an exclusive schema lock on the view. ロックが許可され、ビューのアクティブ ユーザーがいなくなると、 データベース エンジンDatabase Engine はプロシージャ キャッシュからビューのすべてのコピーを削除します。When the lock is granted, and there are no active users of the view, the データベース エンジンDatabase Engine deletes all copies of the view from the procedure cache. ビューを参照している既存のプランはキャッシュに残りますが、呼び出されると再コンパイルされます。Existing plans referencing the view remain in the cache but are recompiled when invoked.

  • ALTER VIEW は、インデックス付きビューに適用できますが、そのビューのすべてのインデックスを無条件で削除します。ALTER VIEW can be applied to indexed views; however, ALTER VIEW unconditionally drops all indexes on the view.

セキュリティSecurity

PermissionsPermissions

ALTER VIEW を実行するには、少なくとも OBJECT に対する ALTER 権限が必要です。To execute ALTER VIEW, at a minimum, ALTER permission on OBJECT is required.

SQL Server Management Studio の使用Using SQL Server Management Studio

ビューを変更するにはTo modify a view

  1. オブジェクト エクスプローラーで、ビューがあるデータベースの横にあるプラス記号をクリックし、 [ビュー] フォルダーの横にあるプラス記号をクリックします。In Object Explorer, click the plus sign next to the database where your view is located and then click the plus sign next to the Views folder.

  2. 変更するビューを右クリックし、 [デザイン] を選択します。Right-click on the view you wish to modify and select Design.

  3. クエリ デザイナーのダイアグラム ペインで、次の方法を使用してビューを変更します。In the diagram pane of the query designer, make changes to the view in one or more of the following ways:

    1. 追加または削除する要素のチェック ボックスをオンまたはオフにします。Select or clear the check boxes of any elements you wish to add or remove.

    2. ダイアグラム ペイン内で右クリックし、 [テーブルの追加] を選択します。次に、 [テーブルの追加] ダイアログ ボックスで、ビューに追加する列を選択します。Right-click within the diagram pane, select Add Table..., and then select the additional columns you want to add to the view from the Add Table dialog box.

    3. 削除するテーブルのタイトル バーを右クリックし、 [削除] をクリックします。Right-click the title bar of the table you wish to remove and select Remove.

  4. ファイル メニューの view name_の保存_をクリックします。On the File menu, click Saveview name.

Transact-SQL の使用Using Transact-SQL

ビューを変更するにはTo modify a view

  1. オブジェクト エクスプローラーで、 データベース エンジンDatabase Engineのインスタンスに接続します。In Object Explorer, connect to an instance of データベース エンジンDatabase Engine.

  2. [標準] ツール バーの [新しいクエリ] をクリックします。On the Standard bar, click New Query.

  3. 次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。Copy and paste the following example into the query window and click Execute. この例では、ビューを作成した後、ALTER VIEW を使用してビューを変更します。The example first creates a view and then modifies the view by using ALTER VIEW. ビュー定義に WHERE 句が追加されています。A WHERE clause is added to the view definition.

    USE AdventureWorks2012 ;  
    GO  
    -- Create a view.  
    CREATE VIEW HumanResources.EmployeeHireDate  
    AS  
    SELECT p.FirstName, p.LastName, e.HireDate  
    FROM HumanResources.Employee AS e 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 JOIN Person.Person AS  p  
    ON e.BusinessEntityID = p.BusinessEntityID  
    WHERE HireDate < CONVERT(DATETIME,'20020101',101) ;   
    GO  
    

詳細については、「ALTER VIEW (Transact-SQL)」を参照してください。For more information, see ALTER VIEW (Transact-SQL).