修改檢視

定義檢視之後,可以使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 2012 中修改其定義,不需要卸除和重新建立檢視。

本主題內容

  • 開始之前:

    限制事項

    安全性

  • 使用下列方法修改檢視:

    SQL Server Management Studio

    Transact-SQL

開始之前

限制事項

  • 修改檢視不會影響任何相依物件,像是預存程序或觸發程序,除非檢視的定義變更導致相依物件不再有效。

  • 如果目前所用的檢視是利用 ALTER VIEW 來修改的,Database Engine 會取得檢視的獨佔結構描述鎖定。 當授與鎖定時,檢視並沒有使用中的使用者,Database Engine 會從程序快取中刪除檢視的所有副本。 現有參考這份檢視的計畫會保留在快取中,但在叫用它時,會重新編譯。

  • 您可以將 ALTER VIEW 套用在索引檢視上;不過,ALTER VIEW 會無條件地卸除檢視的所有索引。

安全性

權限

若要執行 ALTER VIEW,至少需要 OBJECT 的 ALTER 權限。

搭配回到頁首連結使用的箭頭圖示[Top]

使用 SQL Server Management Studio

若要修改檢視

  1. [物件總管] 中,按一下檢視所在之資料庫旁邊的加號,然後按一下 [檢視] 資料夾旁邊的加號。

  2. 以滑鼠右鍵按一下您要修改的檢視,然後選取 [設計]

  3. 在查詢設計工具的圖表窗格中,以下列一個或多個方式變更檢視:

    1. 對於您要加入或移除的任何元素,選取或清除核取方塊。

    2. 在圖表窗格中按一下滑鼠右鍵,選取 [加入資料表],然後從 [加入資料表] 對話方塊選取要加入至檢視的其他資料行。

    3. 以滑鼠右鍵按一下您要移除資料表的標題列,然後選取 [移除]

  4. 按一下 [檔案] 功能表上的 [儲存 view name]

搭配回到頁首連結使用的箭頭圖示[Top]

使用 Transact-SQL

若要修改檢視

  1. [物件總管] 中,連接到 Database Engine 的執行個體。

  2. 在標準列上,按一下 [新增查詢]

  3. 將下列範例複製並貼到查詢視窗中,然後按一下 [執行]。 此範例先建立檢視,然後透過使用 ALTER VIEW 修改此檢視。 檢視定義中會加入 WHERE 子句。

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

搭配回到頁首連結使用的箭頭圖示[Top]