如何在不破坏内容的情况下重命名许多存储过程?

fea*_*urs 14 sql-server stored-procedures renaming visual-studio

多年来,我的数据库已经有了几个连续的维护者,并且可能已经存在的任何命名准则都被忽略了.

我想将存储过程重命名为一致的格式.显然,我可以在SQL Server Management Studio中重命名它们,但这不会更新后面的网站代码(C#/ ASP.NET)中的调用.

我能做些什么来确保所有调用都更新为新名称,而不是在代码中搜索每个旧的过程名称?Visual Studio是否具有重构此类存储过程名称的能力?

NB我不相信我的问题是这个问题的重复,因为后者仅仅是在数据库中重命名.

JLW*_*low 39

您可以分阶段进行更改:

  1. 以新名称将存储过程复制到新存储过程.
  2. 更改旧存储过程以调用新存储过程.
  3. 更改网站中的所有代码后,将日志记录添加到旧存储过程.
  4. 过了一段时间,当你没有看到对旧存储过程的任何调用,并且你很高兴你已经找到了网站上的所有调用,你可以删除旧的存储过程和日志记录.


Stu*_*tLC 5

您可以将SPROC的'guts'移动到符合新命名约定的新SPROC,然后将原始sproc保留为委托给新SPROC的shell /包装器.您还可以添加一个"审计"表来跟踪旧包装器SPROC的调用时间 - 这样您就会知道旧的SPROC没有依赖关系,并且可以安全地删除旧的SPROC(同样,确保它不是不只是'你的应用程序'使用数据库 - 例如跨数据库连接或其他应用程序)

这会有很小的性能损失,并不会真正给你带来太大的收益(除了能够"更容易地"找到你的新SPROCs)