2017-11-04 69 views
-2

当我在我的数据库中的三个表中的SSMS中使用'Select Top 1000 Rows'功能时,出现数据库处于脱机状态的错误。但错误消息中的数据库名称与查询中数据库的名称不匹配。SSMS Select Top 1000 *查询失败

SELECT TOP 1000 ... 
FROM [vc-live].[dbo].[Errors] 

Msg 942, Level 14, State 4, Line 2 
Database 'vc-live-old' cannot be opened because it is offline. 

如果我添加一个明确的使用语句 - 无论是[master]还是[vc-live] - 查询都可以正常运行。

我能找到的唯一的另一个奇怪的事情是vc-live-old数据库在sys.master_files中在线显示,尽管它在SSMS中是离线的。

正如您可能会怀疑的那样,在将数据库置于单用户模式并立即回滚之后,数据库在一段时间后使用alter语句重新命名。

访问数据库的应用程序运行良好,我不关心由于应用程序的性质而导致的数据丢失。但是,我担心数据库引擎重新启动时可能发生的情况。

DB是2012 SP2。

对这种意外行为有什么想法?

+1

也许'[VC-直播] [DBO] [错误]'是一个三部分名称的视图引用已停用的数据库。 –

+0

这是一张桌子。有三个表具有此行为。所有其他表格的行为都正常,选择“前1000行”。 – Leslie

回答