搜索并替换存储过程中的内容

时间:2010-02-12 20:26:46

标签: sql-server sql-server-2008

我真的不知道在没有搜索存储过程Can you search SQL Server 2005 Stored Procedure content?的文本的情况下我能够如何生活。

对我来说,下一件大事就是能够在几个存储过程中替换一些文本。有没有办法做到这一点?

修改

我现在使用Red Gate SQL Search进行搜索。它很好,但他们应该给我更新功能!请!

4 个答案:

答案 0 :(得分:5)

您可以选择以下程序:

select name , definition from sys.procedures inner join sys.all_sql_modules on sys.procedures.object_id = sys.all_sql_modules.object_id

现在您可以为此进行更新查询。

答案 1 :(得分:5)

我知道这是针对SQL2005的,但是在SQL2008中你可以这样做:

select name, object_definition(object_id) proceduredefinition from sys.procedures

现在您已经查询了该过程的定义,(我会)将其用作派生表(我将在下面的示例中将其称为T1)

select name, proceduredefinition, replace(proceduredefinition,'texttoreplace','withthistext') as newcodedefinition
FROM T1 where t1.proceduredefinition like '%something to search for%'

现在将新代码定义复制并粘贴到SSMS中并执行。

答案 2 :(得分:4)

这样做的一个好方法是开始使用Visual Studio Database Edition进行数据库模式管理。这个工具做了很多很棒的事情,包括重构数据库代码和在你的模式中进行搜索/替换活动。

该工具对Visual Studio Team Suite和Visual Studio Developer Edition的用户是免费的。

答案 3 :(得分:1)

编写程序脚本,将脚本保留在源代码管理中,然后在文本编辑器中使用搜索和替换来更改脚本有什么问题?