编程技术 · 2022年3月20日

还原数据库出现异常:Exclusive access could not be obtained because the database is in use

System.Data.SqlClient.SqlException
  HResult=0x80131904
  Message=Exclusive access could not be obtained because the database is in use.
RESTORE DATABASE is terminating abnormally.

  Source=.Net SqlClient Data Provider
  StackTrace:
   在 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
刚开始使用杀掉数据库活动链接的方式无效,后来尝试在还原之前,让数据库离线的方式,可以成功,
示例代码如下:
    cmd.CommandType = CommandType.Text
    cmd.CommandText = "USE master"
    cmd.CommandText &= vbCrLf 
    cmd.CommandText &= $"ALTER DATABASE [{pRestoreObjectName}] SET offline with rollback immediate"
    cmd.CommandText &= vbCrLf 
    cmd.CommandText &= "RESTORE DATABASE [" & pRestoreObjectName & "]"
    cmd.CommandText &= " FROM DISK= '" & pBackupFile & "'"
    cmd.CommandText &= vbCrLf 
    cmd.CommandText &= $"ALTER DATABASE [{pRestoreObjectName}] SET online with rollback immediate"
    cmd.ExecuteNonQuery()

最新电影,电视剧,尽在午夜剧场

电影电视剧午夜不寂寞