更新:2007 年 11 月
可以使用数据库重构来重命名架构对象。引用已重命名对象的其他对象会自动根据这一新名称进行更新。例如,您可以重命名表中的列,引用该列的任何存储过程都将自动用新名称进行更新。下面是可以重命名的架构对象的示例:
表
表、视图和函数中的列
存储过程参数
一直以来,重命名数据库对象非常简单,但是更新那些引用已重命名的对象的对象则非常困难。更新引用对象始终是一项手动任务,该任务要求具有引用重命名对象的所有对象的记录,或者依赖 sp_depends 来获取此信息。由于 sp_depends 不是总能够返回预期的数据,因此有时无法可靠地获得这些信息。使用数据库重构,可以可靠地重命名数据库对象以及引用它们的对象。默认情况下,仅对其定义不会导致警告或错误的对象应用更新。
除了自动更新引用架构对象以外,数据库重构还可以更新数据生成计划、脚本和单元测试。有关更多信息,请参见重命名数据库对象前的注意事项。
![]() |
---|
在重命名数据库对象时,与该对象相关联的 .sql 文件不会重命名。可以通过使用“解决方案资源管理器”窗口来手动重命名该文件。 |
重命名重构的其他用法
重命名重构还可有助于您执行以下常规任务:
在区分大小写的环境中,可以更改架构对象名及其所有引用的大小写以满足您所在组织的大小写约定。例如,如果数据库项目混合引用了“Myid”和“MyID”,则可以使用重命名重构将所有引用更改为“MyID”。
说明:
已具有正确大小写的引用将更新(为同一值)。如果包含这些引用的文件在版本控制之下,则在重构操作过程中会将该文件签出。
重命名两个或两个以上对象,以使它们的名称和引用相匹配。例如,可以合并两个架构名称(例如“Person”和“Person Name”),也可以合并两个在区分大小写环境中仅大小写不同的名称(例如“MyID”和“Myid”)。
用方括号将架构对象名及其所有引用括起来以遵循对象命名的最佳做法。例如,可以用“[MyID]”替换“MyID”的所有引用。
说明:
已用方括号括起来的引用将更新(为同一值)。如果包含这些引用的文件在版本控制之下,则在重构操作过程中会将该文件签出。
当您执行这些任务时,会显示一条错误消息,警告您具有该新名称的架构对象已存在。您必须单击“是”进行更改。但是,如果在“重命名”对话框中保持选中“预览更改”复选框,则可以预览和有选择地排除单个更改。
部署
数据库重构以数据库项目为基础。使用此方法会对数据库项目进行更改,但不会直接对实时数据库进行更改。遵循此策略可以获得数据库项目的所有好处,其中包括源代码管理和团队开发。随后可以使用数据库项目部署功能来部署对数据库项目所做的更改。有关更多信息,请参见生成和部署数据库架构。
![]() |
---|
在团队开发环境中,在将所做的更改部署到成品服务器上之前,应当先针对应用程序和数据库运行单元测试。有关更多信息,请参见团队环境中的数据库创建和部署概述。 |
“预览更改”对话框
在使用重构功能来重命名数据库对象时,可以预览所做的更改。对于引用正在重命名的对象的所有对象,使用此选项可以查看对它们所做的更改。
“预览更改”对话框中包含两个窗格:上窗格和下窗格。上窗格包含列出将要更改的对象的树,下窗格显示为了进行更改而将生成的脚本。当您单击对象时,上窗格中将显示旧名称,下窗格中将显示新名称。有关更多信息,请参见如何:预览重命名更改。
替换对服务器和数据库的引用
在对象定义或脚本中可以包括对其他数据库中对象的引用,但前提是您为包含要引用的对象的数据库指定了名称。如果引用和对象位于不同的服务器上,则还必须在引用中为要引用的对象指定服务器名称。可以用名称或变量来指定数据库和服务器。在创建这些引用之后,如果您必须在日后指定另一个名称、将名称替换为变量、将变量替换为名称或者将一个变量替换为另一个变量,则可以使用重构功能来更新这些引用。有关跨数据库引用的更多信息,请参见跨数据库引用概述。有关如何重命名这些引用的更多信息,请参见如何:重命名对服务器或数据库的引用。