修改檢視
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics 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
在 [物件總管]中,選取檢視所在資料庫旁邊的加號,然後選取 [檢視] 資料夾旁邊的加號。
以滑鼠右鍵按一下您要修改的檢視,然後選取 [設計]。
在查詢設計工具的圖表窗格中,以下列一個或多個方式變更檢視:
對於您要加入或移除的任何元素,選取或清除核取方塊。
以滑鼠右鍵按一下圖表窗格,並選取 [新增資料表...],然後從 [新增資料表] 對話方塊選取要新增檢視中的其他資料行。
以滑鼠右鍵按一下您要移除之資料表的標題列,然後選取 [移除]。
在 [檔案] 功能表上,選取 [儲存檢視名稱]。
使用 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