一尘不染

如果删除了.mdf,则在删除LocalDb数据库时找不到指定的文件

sql

我正在尝试编写一个将在应用程序的文件夹中找不到本地数据库的应用程序。我删除.mdf后运行此查询

IF EXISTS (SELECT * FROM sys.databases WHERE name = N'Test_db')
BEGIN 
     DROP DATABASE Test_db 
END

CREATE DATABASE Test_db 
ON PRIMARY (NAME=Test_db, FILENAME='...\Test_db.mdf')

command.ExecuteNonQuery()抛出一个异常,即使它删除了数据库并创建了一个新的数据库。错误来自DROPDATABASE命令部分。

附加信息:无法打开物理文件“ … \ Test_db.mdf”。操作系统错误2:“ 2(系统找不到指定的文件。)”。

文件激活失败。物理文件名“ … \ Test_db_log.ldf”可能不正确。


阅读 162

收藏
2021-03-08

共1个答案

一尘不染

解决该问题的方法是,sp_detach_db因为它从服务器中删除了数据库,而没有从文件系统中删除文件。

EXEC sp_detach_db 'Test_db'
2021-03-08