重命名视图

适用于:SQL Server分析平台系统 (PDW)Azure SQL 数据库Azure SQL 托管实例Microsoft Fabric 中的 SQL 数据库

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

警告

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

先决条件

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