我真的不知道在没有搜索存储过程Can you search SQL Server 2005 Stored Procedure content?的文本的情况下我能够如何生活。
对我来说,下一件大事就是能够在几个存储过程中替换一些文本。有没有办法做到这一点?
修改
我现在使用Red Gate SQL Search进行搜索。它很好,但他们应该给我更新功能!请!
答案 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)
编写程序脚本,将脚本保留在源代码管理中,然后在文本编辑器中使用搜索和替换来更改脚本有什么问题?