我们正在创建我们网站的新版本。因此,我复制了当前数据库并将其重命名为新名称。当我尝试加载新站点时,出现以下错误
[Macromedia][SQLServer JDBC Driver][SQLServer]Invalid object name 'name1.dbo.table'.
CFAdmin 中的数据源指向新的数据库,站点的源代码正在使用新的数据源。无论如何,我已经删除了指向旧数据库的数据源。
CF Data Source Name: name2
Database: name2
我在站点的源代码中找不到任何引用这两个数据库的内容,所有查询都是通过存储过程执行的。 (所有这些现在都指向 name2 而不是 name1)这是 ColdFusion 的全新安装,因此 CFAdmin 中不能有任何东西以某种方式指向旧数据库而不是新数据库。除此之外,我不知道是什么导致了这个问题。任何想法表示赞赏。
最佳答案
如果您确信 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 --------^^^^^
您可能还想将搜索范围扩大到实例上的其他数据库,以防万一。 :-)
关于sql-server - 我重命名了一个数据库,但 ColdFusion 仍在寻找旧名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19938212/