【问题标题】:Mass Renaming of Tables and Stored Procedures表和存储过程的大规模重命名
【发布时间】:2009-07-08 14:51:12
【问题描述】:

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

为什么最好的方法是这样做?

我考虑过的一些方法:

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

除了 RedGates 的 Refactor,我在http://www.easysqltools.com/EasySQLSmartRename.aspx 找到了这组工具,它们的功能完全相同(我觉得他们的版本基于 Refactor,因为 UI 看起来几乎完全相同)在 SSMS 中运行Express 恰好是我运行的版本。对于大多数用途而言,15 天的试用期应该绰绰有余。

【问题讨论】:

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


    【解决方案1】:

    我会使用 sp_rename 作为表格。

    对于其他一切,我会编写数据库脚本,对文本文件进行搜索和替换,然后将脚本执行回您的数据库:

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

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

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

    我意识到这有点乏味,这取决于我们谈论的对象数量,而且(当然),我会首先在开发中这样做,但我以前使用过这个过程并且效果很好.

    【讨论】:

    • 谢谢。仅供参考,上述工具与您所说的完全一样,只是它们都包含在客户端应用程序中。
    • 另一个区别是它不是免费的。
    【解决方案2】:

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

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

    【讨论】:

    • 哈!我就知道有人会这么说!让他们来吧!
    • 这很好,但我知道你会知道有人会这么说 ;-)
    【解决方案3】:

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

    Refactoring Databases: Evolutionary Database Design

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-11
      • 1970-01-01
      • 2014-07-01
      相关资源
      最近更新 更多