我有一个包含两个数据库的系统,主数据库和审计数据库。主数据库和审计数据库中的许多触发器和表视图都是从一个数据库引用到另一个数据库。不,我需要更改两个数据库名称,但不幸的是它们无法工作,因为它们在代码中仍然有旧名称。
是否有代码来搜索和替换用于引用或依赖的旧名称?
谢谢,
答案 0 :(得分:0)
您必须手动修复引用,但您可以利用某些sql来查找有问题的对象。
select OBJECT_NAME(id) as ObjectName
, text as ObjectCode
from sys.syscomments
where text like '%YourReplacedDatabaseName%'
这将为您提供代码中具有旧数据库名称的函数,过程,视图等的列表。但是,在更新代码后,您将不得不重新编译每个对象。你可以利用一些动态的sql来为你做这件事,但我会对这种规模的变化感到紧张。