Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SSMS drop failed for database "Unable to open physical file"

Tried to find this elsewhere with no luck.

I'm trying to drop databases that no longer exist on disk, but still show up in the Object Explorer in SSMS 2014

So how can I 'clean them out' of the Object Explorer?

Do I need to manually remove them from sys.master_files?

The exception was:

    Drop failed for Database 'aspnet-Blawblaw-20141027015559'.  (Microsoft.SqlServer.Smo)

    ------------------------------
    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=12.0.2000.8+((SQL14_RTM).140220-1752)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=Drop+Database&LinkId=20476

    ------------------------------
    Program Location:

       at Microsoft.SqlServer.Management.Smo.SqlSmoObject.DropImpl()
       at Microsoft.SqlServer.Management.Smo.Database.Drop()
       at Microsoft.SqlServer.Management.SqlManagerUI.DropObjects.DoDropObject(Int32 objectRowIndex)
       at Microsoft.SqlServer.Management.SqlManagerUI.DropObjects.DropAllObjects(Boolean stopOnError)

    ===================================

    An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------
    Program Location:

       at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType)
       at Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType)
       at Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries)
       at Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection queries, Boolean includeDbContext)
       at Microsoft.SqlServer.Management.Smo.SqlSmoObject.DropImplWorker(Urn& urn)
       at Microsoft.SqlServer.Management.Smo.SqlSmoObject.DropImpl()

    ===================================

    Unable to open the physical file "C:\Projects\BlawBlaw\BlawBlaw\App_Data\aspnet-BlawBlaw-20141027015559.mdf". Operating system error 3: "3(The system cannot find the path specified.)".
    File activation failure. The physical file name "C:\Projects\BlawBlaw\BlawBlaw\App_Data\aspnet-BlawBlaw-20141027015559_log.ldf" may be incorrect. (.Net SqlClient Data Provider)

    ------------------------------
    For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=11.00.3000&EvtSrc=MSSQLServer&EvtID=5120&LinkId=20476

    ------------------------------
    Server Name: (LocalDb)\v11.0
    Error Number: 5120
    Severity: 16
    State: 101
    Line Number: 2


    ------------------------------
    Program Location:

       at Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
       at Microsoft.Sq
like image 703
Robert Achmann Avatar asked Sep 29 '22 12:09

Robert Achmann


2 Answers

sqlcmd -S (LocalDB)\MSSQLLocalDB -E -d master -Q "EXEC sp_detach_db 'Test', 'true'"
  • Detach a Database | Microsoft Docs
  • sp_detach_db (Transact-SQL) | Microsoft Docs
  • sqlcmd Utility | Microsoft Docs
  • How to delete (localdb) database if the file is gone | Stackoverflow
like image 125
Eric Avatar answered Oct 05 '22 08:10

Eric


This helps for me.

  1. Open new Query
  2. Copy the name of the DB (F2)
  3. Run this command: DROP DATABASE [C:TEST.MDF]
    -- When "test" is name of the DB
  4. Execute
  5. After refresh, DB string is not shown under databases
like image 33
vlatko606 Avatar answered Oct 05 '22 08:10

vlatko606