Foxtable(狐表)用户栏目专家坐堂 → [求助]求助,使用drop database语句删除数据库后,并没有删除服务器上的数据库mdf文件及日志文件,导致在重建同名数据库时出错,如何删除数据库同时同步删除mdf及日志文件,请老师们指教?


  共有4160人关注过本帖树形打印复制链接

主题:[求助]求助,使用drop database语句删除数据库后,并没有删除服务器上的数据库mdf文件及日志文件,导致在重建同名数据库时出错,如何删除数据库同时同步删除mdf及日志文件,请老师们指教?

帅哥,在线噢!
有点蓝
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106089 积分:539550 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/19 14:40:00 [只看该作者]

1、自己手工删除

2、看懂:https://dba.stackexchange.com/questions/2387/sql-server-cannot-drop-database-dbname-because-it-is-currently-in-use-but-n

 回到顶部
帅哥哟,离线,有人找我吗?
百灵
  12楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:739 积分:7677 威望:0 精华:0 注册:2015/3/3 14:34:00
  发帖心情 Post By:2018/8/19 16:44:00 [只看该作者]

有点蓝,感谢你的耐心指导,已解决,在脱开数据库时,先前用“cmd.CommandText = "ALTER DATABASE [" & dr("数据库名称") & "] SET OFFLINE With ROLLBACK IMMEDIATE"无法删除物理文件及日志文件,改为这种模式就可以了”cmd.CommandText = "ALTER DATABASE [" & dr("数据库名称") & "] SET SINGLE_USER With ROLLBACK IMMEDIATE"。
[此贴子已经被作者于2018/8/19 16:43:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
百灵
  13楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:739 积分:7677 威望:0 精华:0 注册:2015/3/3 14:34:00
  发帖心情 Post By:2018/8/19 16:51:00 [只看该作者]

https://www.cnblogs.com/JiangLe/p/4036629.html

,这个链接标记一下,对于SQL Server 数据库状态有详细说明


 回到顶部
帅哥哟,离线,有人找我吗?
百灵
  14楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:739 积分:7677 威望:0 精华:0 注册:2015/3/3 14:34:00
  发帖心情 Post By:2018/8/19 17:04:00 [只看该作者]

把删除数据库的代码分享给大家,在设置系统多账套管理时会用到:

if dr("服务器类型") = "SQL服务器" then
         
            Dim str As String = Connections("当前数据源名称").ConnectionString.replace(";Initial Catalog=" & dr("数据库名称") & ";Data Source=",";Initial Catalog=master;Data Source=")
            If Connections.Contains("临时") Then
                Connections.Delete("临时")
            End If
            Connections.add("临时",str)
            
            '----断开数据库时无法删除物理文件mdf及日志文件,应使用master,并改为单用户模式,再删除数据库
            Dim cmd0 As New SQLCommand
            cmd0.C           
            cmd0.CommandText = "ALTER DATABASE [" & dr("数据库名称") & "] SET SINGLE_USER With ROLLBACK IMMEDIATE"
            cmd0.ExecuteNonQuery
            
            '----删除数据库
            Dim cmd As New SQLCommand
            cmd.C
            cmd.CommandText = "drop DATABASE " & dr("数据库名称")
            cmd.ExecuteNonQuery
end if


 回到顶部
总数 14 上一页 1 2