我们正在创建我们网站的新版本。因此,我制作了当前数据库的副本并将其重命名为新名称。当我尝试加载新网站时,我收到以下错误
[Macromedia][SQLServer JDBC Driver][SQLServer]Invalid object name 'name1.dbo.table'.
CFAdmin中的数据源指向新数据库,站点的源代码使用新数据源。我已经删除了指向旧数据库的数据源。
CF Data Source Name: name2
Database: name2
我在网站的源代码中找不到任何一个DB,所有查询都是通过存储过程执行的。 (现在所有这些都指向name2而不是name1)这是ColdFusion的全新安装,因此CFAdmin中没有任何东西以某种方式指向旧数据库而不是新数据库。除此之外,我不知道是什么导致了这个问题。任何想法都表示赞赏。
答案 0 :(得分:4)
如果您确信ColdFusion正在查找正确的数据库,则下一个要检查的位置是存储过程,该过程具有三部分引用,明确提及旧名称。这可能会导致误报,具体取决于名称1,但这是一个开始:
SELECT p.name, m.definition
FROM sys.procedures AS p
INNER JOIN sys.sql_modules AS m
ON p.[object_id] = m.[object_id]
WHERE m.definition LIKE N'%name1%';
-- put old name here --------^^^^^
它也可能是一个函数或触发器或其他模块,因此扩展搜索可能是明智的:
SELECT o.name, o.type_desc, m.definition
FROM sys.objects AS o
INNER JOIN sys.sql_modules AS m
ON o.[object_id] = m.[object_id]
WHERE m.definition LIKE N'%name1%';
-- put old name here --------^^^^^
您也可能希望将搜索范围扩大到实例上的其他数据库,您知道,以防万一。 : - )