表和存储过程的批量重命名

时间:2009-07-08 14:51:13

标签: sql-server sql-server-2005 stored-procedures refactoring naming

我需要重命名所有表,存储过程以及每个存储过程中引用旧表名的代码。

为什么最好的方法呢?

我考虑过的一些方法:

SP_Rename - 完成一半的工作。但是,这不会改变SP本身的代码

除了RedGates的Refactor之外,我在这里找到了这组工具http://www.easysqltools.com/EasySQLSmartRename.aspx,它完全一样(我感觉他们的版本基于Refactor,因为UI看起来几乎完全相同)在SSMS Express中,恰好是我运行的版本。对于大多数目的来说,15天试用应该足够了。

3 个答案:

答案 0 :(得分:5)

我会在表格中使用sp_rename。

对于其他所有内容,我会编写数据库脚本,对文本文件进行搜索和替换,然后将脚本执行回数据库:

在Management Studio中,右键单击数据库名称,然后单击“任务”,然后“生成脚本”。

不要编写所选数据库中的所有对象的脚本,只编写存储过程,同义词,用户定义的函数和视图。

此外,请确保设置以下选项:脚本删除,脚本对象级别权限,脚本创建。

我意识到这有点单调乏味,这取决于我们谈论的对象有多少,而且(当然),我会先做开发,但我之前使用过这个过程并且效果很好

答案 1 :(得分:3)

RedGate的SQLRefactor具有智能重命名功能。它更新了对重命名对象的所有引用!

见这里:http://www.red-gate.com/products/SQL_Refactor/features.htm

答案 2 :(得分:0)

有一本关于这个和相关主题的书:

Refactoring Databases: Evolutionary Database Design

有一些技巧可以提供帮助,我认为值得做 - 但这并不容易。祝你好运!