首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我重命名了一个数据库,但是ColdFusion仍然在寻找旧的名称

我重命名了一个数据库,但是ColdFusion仍然在寻找旧的名称
EN

Stack Overflow用户
提问于 2013-11-12 19:31:06
回答 1查看 304关注 0票数 4

我们正在创建一个新版本的我们的网站。因此,我复制了当前数据库,并将其重命名为新名称。当我尝试加载新站点时,会出现以下错误

代码语言:javascript
复制
[Macromedia][SQLServer JDBC Driver][SQLServer]Invalid object name 'name1.dbo.table'.

CFAdmin中的数据源指向新DB,站点的源代码使用新数据源。我已经删除了指向旧DB的数据源。

代码语言:javascript
复制
CF Data Source Name: name2
Database:            name2

我在站点的源代码中找不到任何引用DBs的内容,所有查询都是通过存储过程执行的。(所有这些都指向name2而不是name1)这是一个新的ColdFusion安装,所以CFAdmin中不可能有任何东西以某种方式指向旧DB而不是新DB。除此之外,我不知道是什么导致了这个问题。任何想法都会受到赞赏。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-12 19:35:09

如果您确信ColdFusion正在查找正确的数据库,那么下一个要检查的地方是存储过程,它有一个三部分的引用,显式地提到了旧名称。这可能会出现假阳性,这取决于name1到底是什么,但这是一个开始:

代码语言:javascript
复制
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 --------^^^^^

它还可以是一个函数、触发器或其他模块,因此扩展搜索可能是明智的:

代码语言:javascript
复制
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 --------^^^^^

你可能还想把搜索范围扩大到实例上的其他数据库,以防万一。:-)

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19938212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档