共用方式為


修改檢視

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse AnalyticsAnalytics Platform System (PDW)

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

限制事項

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

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

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

權限

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

使用 SQL Server Management Studio

  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
    

下一步