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