修改和重命名视图
视图定义之后,您可以更改视图的名称或视图的定义而无需删除并重新创建视图。删除并重新创建视图会造成与该视图关联的权限丢失。在重命名视图时,请考虑以下原则:
- 要重命名的视图必须位于当前数据库中。
- 新名称必须遵守标识符规则。
- 仅可以重命名具有其更改权限的视图。
- 数据库所有者可以更改任何用户视图的名称。
修改视图并不会影响相关对象(例如,存储过程或触发器),除非对视图定义的更改使得该相关对象不再有效。例如,AdventureWorks
数据库中的 employees_view
视图的定义为:
CREATE VIEW employees_view
AS
SELECT EmployeeID FROM HumanResources.Employee
存储过程 employees_proc
的定义为:
CREATE PROC employees_proc
AS
SELECT EmployeeID from employees_view
将 employees_view
修改为检索 LastName
列而不是 EmployeeID
:
ALTER VIEW employees_view
AS
SELECT LastName FROM Person.Contact c
JOIN HumanResources.Employee e ON c.ContactID = e.ContactID
此时执行 employees_proc
将失败,因为该视图中已不存在 EmployeeID
列。
也可以修改视图以对其定义进行加密,或确保所有对视图执行的数据修改语句都遵循定义视图的 SELECT 语句中设定的条件集。有关详细信息,请参阅设计和实现视图。
修改视图
重命名视图
注意: |
---|
重命名视图并不更改它在视图定义文本中的名称。要在定义中更改视图名称,应直接修改视图。 |