Sql server 由于交换数据库实例中的对象无效,我的存储过程随机失败

Sql server 由于交换数据库实例中的对象无效,我的存储过程随机失败,sql-server,database-restore,Sql Server,Database Restore,我的数据库中有一个存储过程,比如说它是CustomerDB,它与另一个数据库中的表函数连接。比如说它是dbPerformance,sp类似于: select something from CustomerDB.dbo.CustoemrData left join dbPerformance.dbo.FnPerformanceDayEnd(CustoemrData.Code, 1,1) dbPerformance数据库包含大量数据,为了更新数据,DBA实际上首先

我的数据库中有一个存储过程,比如说它是CustomerDB,它与另一个数据库中的表函数连接。比如说它是dbPerformance,sp类似于:

select something from CustomerDB.dbo.CustoemrData left join 
                dbPerformance.dbo.FnPerformanceDayEnd(CustoemrData.Code, 1,1)
dbPerformance数据库包含大量数据,为了更新数据,DBA实际上首先将新数据填充到名为dbPerformanceNew的数据库中,当新数据库准备就绪时,它将从dbPerformanceNew恢复dbPerformance数据库

随机地,我从sp中看到了错误,例如无效的对象名“dbPerformance.dbo.FnPerformanceDayEnd”。时间与从dbPerformanceNew还原旧数据库dbPerformance的时间无关

我的困惑是,当恢复发生时,它已经拥有了所有的数据和所有的功能。我想至少我应该看到这样的错误:dbPerformance数据库不可用,因为正在恢复dbPerformanceNew数据库,而不是某些对象不可用


有人有经验吗

您最好询问dba。我的猜测是,您没有指定恢复的执行方式:一个SELECT…INTO在大量删除后运行,因此出现了错误。DBA的猜测是,当我们从一个数据库切换到另一个数据库时,sql server不知何故被搞糊涂了,查询不知何故被卡在了旧数据库上。但我们目前根本无法解释错误消息。您可以在dba.stackexchange.com上发布更多关于此问题的详细信息;在这里,您可能会发现更多对sql有经验的人。我投票结束这个问题,因为这似乎是由DBA所做的操作引起的。这不是一个编程问题。