Con*_*eak 13 sql sql-server sql-server-2008
实际上,这是一个2部分的问题.
是否可以使用某种功能来搜索字符串的每个存储过程并可能替换它,就像标准的查找/替换功能一样?
如果您的所有存储过程代码都包含这样的完整数据库路径[db1].[dbo].[table1]
并且您将数据库名称更改[db2]
为SQL Server是否有办法自动将[db1]
表中的所有代码更新为[db2]
?还是必须手动完成?
Dav*_*son 38
从SSMS中的"对象资源管理器详细信息"窗口中,打开存储过程文件夹.选择所有对象(您可以从此窗口中进行多选,这几乎是"对象资源管理器详细信息"窗口的唯一目的)并右键单击,选择脚本为DROP和CREATE.您现在可以对此进行搜索/替换,在执行之前一次性替换您需要的所有内容.
编辑:我在博客上写过这个解决方案.
mar*_*c_s 11
要搜索:如果您需要按名称查找数据库对象(例如表,列,触发器) - 请查看名为SQL Search的免费 Red-Gate工具,它会执行此操作 - 它会在整个数据库中搜索任何类型的字符串(s ).
对于任何DBA或数据库开发人员来说,它都是必备工具 - 我是否已经提到它可以完全免费用于任何类型的使用?
但是,此工具不支持替换文本 - 但即使只是能够找到所有相关的存储过程(或其他DB对象)也非常有用!
将所有SP导出到文件.使用您喜欢的文本编辑工具进行搜索/替换.通过执行脚本更新数据库(只要不重命名过程).
如果明确定义完整数据库路径,则需要手动(参见上文)更新存储过程.如果您不包含数据库名称,或使用链接服务器或类似名称,则无需进行任何更改.