我们正在创建一个新版本的我们的网站。因此,我复制了当前数据库,并将其重命名为新名称。当我尝试加载新站点时,会出现以下错误
[Macromedia][SQLServer JDBC Driver][SQLServer]Invalid object name 'name1.dbo.table'.CFAdmin中的数据源指向新DB,站点的源代码使用新数据源。我已经删除了指向旧DB的数据源。
CF Data Source Name: name2
Database: name2我在站点的源代码中找不到任何引用DBs的内容,所有查询都是通过存储过程执行的。(所有这些都指向name2而不是name1)这是一个新的ColdFusion安装,所以CFAdmin中不可能有任何东西以某种方式指向旧DB而不是新DB。除此之外,我不知道是什么导致了这个问题。任何想法都会受到赞赏。
发布于 2013-11-12 19:35:09
如果您确信ColdFusion正在查找正确的数据库,那么下一个要检查的地方是存储过程,它有一个三部分的引用,显式地提到了旧名称。这可能会出现假阳性,这取决于name1到底是什么,但这是一个开始:
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 --------^^^^^你可能还想把搜索范围扩大到实例上的其他数据库,以防万一。:-)
https://stackoverflow.com/questions/19938212
复制相似问题