Sql server 尝试删除SQL Server数据库时出现错误21

Sql server 尝试删除SQL Server数据库时出现错误21,sql-server,Sql Server,我有一个外部硬盘上的SQL Server数据库。我忘了拆下DB。我不再需要它了,但我无法删除或使其离线 当我尝试删除数据库或使其脱机时,会出现以下错误 Msg 823,24级,状态2,第7行 操作系统返回 读取时,SQL Server出现错误21(设备未准备就绪) 文件“E:\Kenya Air\Monet-Paulus.mdf”中的偏移量0x00000000012000。 SQL Server错误日志和系统事件日志中的其他消息 可能会提供更多细节。这是一种严重的系统级错误情况 这威胁到数据库的

我有一个外部硬盘上的SQL Server数据库。我忘了拆下DB。我不再需要它了,但我无法删除或使其离线

当我尝试删除数据库或使其脱机时,会出现以下错误

Msg 823,24级,状态2,第7行

操作系统返回 读取时,SQL Server出现错误21(设备未准备就绪) 文件“E:\Kenya Air\Monet-Paulus.mdf”中的偏移量0x00000000012000。 SQL Server错误日志和系统事件日志中的其他消息 可能会提供更多细节。这是一种严重的系统级错误情况 这威胁到数据库的完整性,必须立即纠正。 完成完整的数据库一致性检查(DBCC CHECKDB)。这个错误 可由多种因素引起;有关详细信息,请参阅SQL Server 在线图书


我曾尝试运行DBCC检查,但出现了相同的错误。

我将尝试SQL中的系统存储过程
sp\u detach\u db
。从:

删除数据库会从SQL Server实例中删除该数据库,并删除该数据库使用的物理磁盘文件。如果 数据库或其任何一个文件在删除时处于脱机状态, 磁盘文件不会被删除。这些文件可以由用户手动删除 使用Windows资源管理器。从当前服务器中删除数据库的步骤 在不从文件系统中删除文件的情况下,使用


操作系统报告的正是您在问题中所说的:在删除数据库时,SQL Server试图从不再存在的设备中删除该文件。因此,根据定义,不能“删除”数据库。但也许可以将其分离,因为这只影响系统对可用数据库列表的内部定义

尝试将数据库脱机,然后联机

Alter database DatabaseName set offline
过一会儿再把它放回网上

Alter database DatabaseName set online

不要试图将数据库设置为脱机,然后再重新联机-这最终会使情况变得更糟。

停止SQL Server-将相应的数据库文件(数据和日志文件)移动到其他位置。再次启动SQL Server-最终数据库将指示(还原挂起)-现在从SQL Server中删除数据库。接下来,将数据库文件连接回服务器,您应该可以了,除非这些文件在物理上已损坏。我已经多次看到这个问题,尤其是在虚拟化SQL实例中,SQL server设置为autostart,并且在系统重新启动之前没有以协调的方式关闭。数据或日志文件的瞬时连接问题可能导致此问题。如果您的系统多次出现此问题,请将SQL server设置为手动启动。

您是否在SQL Management Studio中尝试过,右键单击数据库,选择“任务”然后选择“分离”?您好,如前所述……当我执行代码使数据库脱机时,我会收到相同的错误。@PaulusViljoen您能运行吗“DBCC Checkdb with all_errormsgs,no_infomsgs”并告诉我您有什么错误。@PaulusViljoen运行这个“exec xp_fixeddrives”以查看是否显示了所有驱动器。嗨,John,当我执行“DBCC Checkdb with all_errormsgs,no_infomsgs”时,我得到的错误消息与我原来的帖子中相同。执行“exec xp_fixeddrives”“显示我的驱动器:C、D和E及其相对可用空间。您好,我在执行sp_detach_db时仍然收到相同的错误。”。