zoukankan      html  css  js  c++  java
  • SqlServer关于“无法删除数据库 "XXXX",因为该数据库当前正在使用”问题的解决方案

    引言

    在项目中,通过使用SQL语句“DROP DATABASE [数据库名]”删除数据时,一直出现“无法删除数据库 "XXXX",因为该数据库当前正在使用”的错误信息,经测试在SqlSever数据库客户端中,直接执行该Sql语句可以正常执行,但是通过OLEDB执行该Sql语句,就出现上述错误,笔者查阅相关文档,找到了解决该问题的方法。

    解决方法

    将要删除的数据库设置库单用户模式和设置立即回滚,具体SQL语句如下:

    USE [master] ALTER DATABASE [数据库名] SET SINGLE_USER WITH ROLLBACK IMMEDIATE DROP DATABASE [数据库名]

    封装删除数据库如下:

     public static bool DeleteSqlServerDB(string serverCon, string dbName)
            {
                bool bSuccess = false;
                try
                {
                    using (SqlConnection conMaster = new SqlConnection(serverCon))
                    {
                        conMaster.Open();
                        string strExist = @"select * from dbo.sysdatabases where name='" + dbName + @"'";
                        SqlCommand cmdExist = new SqlCommand(strExist, conMaster);
                        SqlDataReader readerExist = cmdExist.ExecuteReader();
                        bool bExist = readerExist.HasRows;
                        readerExist.Close();
                        if (bExist)
                        {
                            var cmd = new SqlCommand(
                                $" USE [master] ALTER DATABASE [{dbName}] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE DROP DATABASE [{dbName}]",
                                conMaster);
                            cmd.ExecuteNonQuery();
                        }
                        conMaster.Close();
                    }
                    bSuccess = true;
                }
                catch (Exception e)
                {
                    bSuccess = false;
                }
                return bSuccess;
            }

    注:SqlCommand可以一次执行多条sql语句,每条sql语句直接用空格或者“;”分开。

    总结

    在数据库操作过程中,我们会遇到千奇百怪的错误,不断的学习和总结才是我们步入下个阶段的必经之路!如果该文对您有所帮助,请点个关注支持下!

  • 相关阅读:
    uva11025 The broken pedometer
    uva131 The Psychic Poker Player
    子集生成算法
    uva10167 Birthday Cake
    poj1129 Channel Allocation
    poj2676 Sudoku
    Emacs杂谈(一)Emacs环境 c++ 快捷键
    poj1416 Shredding Company
    英文报刊推荐
    搜索练习(二)工作效益
  • 原文地址:https://www.cnblogs.com/aizai846/p/11431296.html
Copyright © 2011-2022 走看看