我以前遇到过这个问题,过去我用来解决这个问题的步骤都没有用。我正在使用SSMS中的数据库以及C#/ .NET。当我在连接到数据库后遇到C#端的错误时,数据库变得无法访问,直到我关闭visual studio,然后在之前的情况下,使数据库脱机,然后再次打开。我正在寻找更多的想法/帮助,因为在做完这些事情之后,一个简单的查询:
SELECT TradeDate, Symbol, Clse
FROM tblDailyPricingAndVol
给了我
Msg 208, Level 16, State 1, Line 1
Invalid object name 'tblDailyPricingAndVol'.
(虽然它是有效的,我在ssms中的对象资源管理器中展开它后立即输入。)
更新: 使用db / schema前缀运行该查询:
SELECT Market.dbo.TradeDate
FROM Market.dbo.tblDailyPricingAndVol
返回错误:
Msg 945,Level 14,State 2,Line 1
数据库'市场'由于文件不可访问或内存或磁盘空间不足而无法打开。有关详细信息,请参阅SQL Server错误日志。
运行此:
select name, state_desc, user_access_desc, is_read_only from sys.databases
告诉我我的数据库在线。我昨晚关闭了视觉工作室并重新启动了我的机器,然后将数据库脱机然后打开了,我看不到类似于"恢复正在等待的事情#34;今天仍然如此。我想重新启动并运行,如果有人能够了解使用Visual Studio 2010连接/断开SQL Server 2008的过程,那么我们将非常感激。
答案 0 :(得分:2)
一个。制作Market.mdf文件的副本并将其存储在安全的地方。
B.在查询窗口中运行以下命令:
USE [master];
GO
ALTER DATABASE Market SET SINGLE_USER WITH ROLLBACK IMMEDIATE; -- may fail
GO
DROP DATABASE Market; -- may fail depending on whether this db really exists
GO
CREATE DATABASE Market ON ( FILENAME =
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Market.mdf'
) FOR ATTACH;
GO
如果由于日志文件(.ldf)的某些错误导致失败,请尝试将market.ldf文件移动到其他位置并运行:
CREATE DATABASE Market ON ( FILENAME =
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Market.mdf'
) FOR ATTACH_REBUILD_LOG;
为了防止将来出现类似问题:
不要分离数据库。
请勿使用AttachDbFileName
和User Instance
设置连接到MDF文件。
不要将数据库设置为OFFLINE
。
不要将数据库设置为自动关闭。