重命名视图

适用于: SQL Server Azure SQL 数据库 不支持。 Azure Synapse Analytics 分析平台系统 (PDW)

可以使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 重命名视图。

警告

如果重命名视图,则依赖于该视图的代码和应用程序可能会出错。 这些代码和应用程序包括其他视图、查询、存储过程、用户定义函数和客户端应用程序。 注意,这些错误会级联发生。

先决条件

  1. 获取视图的所有依赖关系的列表。 必须修改引用视图的任何对象、脚本或应用程序,以反映新的视图名。 有关详细信息,请参阅 Get Information About a View
  2. 我们建议您删除视图,然后使用新名称重新创建它,而不是重命名视图。 通过重新创建视图,您可以更新视图中引用的对象的依赖关系信息。
    1. 删除并重新创建视图将删除分配给视图的任何粒度化 SQL 权限。 如果为视图分配了任何粒度化 SQL 权限,则需要在重新创建视图后重新向该视图授予权限。 要检索在删除对象之前授予的粒度权限,请参阅 sys.database_permissions (Transact-SQL) 中的示例。 要授予权限,请参阅 向主体授予权限

权限

需要对 SCHEMA 的 ALTER 权限或对 OBJECT 的 CONTROL 权限,以及数据库中的 CREATE VIEW 权限。

使用 SQL Server Management Studio

重命名视图

  1. “对象资源管理器”中,展开包含要重命名的视图的数据库,然后展开 “视图” 文件夹。

  2. 右键单击要重命名的视图,然后选择 “重命名”

  3. 输入视图的新名称。

使用 Transact-SQL

尽管可以使用 sp_rename 更改视图的名称,但是我们建议删除现有视图,然后使用新名称重新创建视图。

使用 sp_rename 重命名存储过程、函数、视图或触发器时,sys.sql_modules 目录视图的定义列中相应对象的名称不会更改。 这可能会在以后造成混淆。 因此,不建议使用 sp_rename 重命名对象。 而是删除对象,然后使用新名称重新创建该对象。

例如:

DROP VIEW [dbo].[vOrders];
GO

CREATE VIEW [dbo].[vOrders]
AS 
<select_statement>
GO

有关更多信息,请参阅 CREATE VIEW (Transact-SQL)DROP VIEW (Transact-SQL)

跟进:在重命名视图之后

  1. 确保引用视图的旧名称的所有对象、脚本和应用程序现在都使用新名称。
  2. 删除并重新创建视图将删除分配给视图的任何粒度化 SQL 权限。 如果为视图分配了任何粒度化 SQL 权限,则需要在重新创建视图时重新向该视图授予权限。 要检索在删除对象之前授予的粒度权限,请参阅 sys.database_permissions (Transact-SQL) 中的示例。 要授予权限,请参阅 向主体授予权限