修改视图
适用于: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
后续步骤
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈