重命名数据库对象前的注意事项

在 Visual Studio 高级专业版中重命名数据库对象之前,应考虑以下问题:

重命名视图中的列

生成错误的影响

对数据生成计划的影响

对单元测试的影响

对 Transact-SQL 脚本的影响

重命名视图中的列

视图包含从表或其他视图中选择列的语句。 视图中使用的表称为基表或基础表。 例如,下面的代码创建一个基于 HumanResources.Employee 表的视图:

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee

在视图中重命名某个列时,不会在基础表中重命名该列。 而视图中的名称将用作别名,如以下示例所示:

CREATE VIEW dbo.vEmployeeTest
AS 
     SELECT EmployeeID, Title AS JobTitle
       FROM HumanResources.Employee

CREATE VIEW dbo.vEmployeeTest (EmployeeID, JobTitle)
AS 
     SELECT EmployeeID, Title
       FROM HumanResources.Employee

提示

如果视图使用 SELECT * 从基础表中获取数据,则将扩展 * 以列出各个列。 如前面的示例所示,重命名的列将用作别名。

若要对视图中和基础表中的列都进行重命名,请改为重命名表中的列,该操作会自动更新视图中的列。

生成错误的影响

在 Visual Studio 高级专业版中重命名数据库对象时,将尝试更新引用此对象的其他数据库对象、数据生成计划、单元测试以及脚本。 在数据库项目中工作时,您所进行的某一步操作可能会引起生成错误,然后会进行另一步操作以更正该生成错误。 例如,您可能删除了一个表,然后可能会更新一个依赖于该表的视图来移除对所删除表的引用。 在删除表和更新视图之间,您的项目会出现生成错误。

即使在项目中有生成错误时重命名数据库对象,也能正确地重命名该对象。 但是,可能无法正确更新对所重命名对象的所有引用。 如果项目中存在生成错误,则**“预览更改”**对话框会发出警告。 如果继续,将重命名对象,并尽可能多地更新引用。 如果取消该操作,则可以先修复生成错误,然后再次尝试重命名操作。

对数据生成计划的影响

在 Visual Studio 高级专业版或 Visual Studio 旗舰版中重命名数据库对象时,会尝试更新引用此对象的数据生成计划。 但是,应考虑以下几点:

  • 必须先保存编辑器中打开的所有数据生成计划,然后才能重命名对象。 如果您在数据生成计划打开的状态下尝试重命名对象,则系统将自动保存并关闭所有打开的数据生成计划,然后继续执行重命名操作。

  • 必须手动更新使用数据绑定数据生成器的数据生成计划。

有关更多信息,请参见使用数据生成器生成数据库的测试数据

对单元测试的影响

单元测试中的 Transact-SQL 语句通常引用在单元测试的 ValidationConnectionString 和 ExecutionConnectionString 中指定的数据库中的对象。 下面是两种可能的例外情况:

  • 单元测试中的 Transact-SQL 语句可以引用其他数据库中的对象。

  • 单元测试中的 Transact-SQL 语句可以引用相同数据库中不同架构中的对象。

在 Visual Studio 高级专业版中重命名数据库对象时,将尝试更新解决方案中引用此对象的单元测试。 在前面提到的情况下,可能无法更新单元测试。 若要在重命名数据库对象时更新单元测试,必须确保在单元测试中使用完全限定的对象名称。 如果在单元测试中使用完全限定的名称,则无论何时重命名架构对象,重构引擎都可以对它们进行更新。

有关单元测试的更多信息,请参见使用单元测试验证数据库代码

对 Transact-SQL 脚本的影响

数据库项目中的 Transact-SQL 脚本通常引用数据库项目的数据库中的架构对象。 下面是两种可能的例外情况:

  • 脚本中的 Transact-SQL 语句可以引用其他数据库中的对象。

  • 脚本中的 Transact-SQL 语句可以引用相同数据库中不同架构中的对象。

在 Visual Studio 高级专业版中重命名数据库对象时,将尝试更新解决方案中引用此对象的脚本。 在前面提到的情况下,可能无法更新脚本。 若要在重命名数据库对象时更新脚本,必须确保在脚本中使用完全限定的对象名称。 如果在脚本中使用完全限定的名称,则无论何时重命名架构对象,重构引擎都可以对它们进行更新。

有关脚本的更多信息,请参见创建和修改数据库脚本

安全性

如果因出错而无法完成重构操作,则有关该错误的信息将写入应用程序事件日志中,对此应用程序事件日志拥有“普通用户”权限的任何用户都可以查看该信息。 如果架构信息被视为敏感信息并且可能会显示在日志中,则您可能需要清除该日志或限制对客户端计算机的访问。

请参见

概念

重命名对数据库对象的所有引用