「データベースが現在使用中であるため、」XXXXソリューション「データベースを削除することはできません」問題についてのSQLServer

入門

あなたはデータを削除すると、「データベースが現在使用中であるため、」プロジェクトでは、「DROPデータベース[データベース名]を」SQLステートメントを使用して、それがXXXX「データベースを削除することができません」というエラーメッセージが表示されている、でSqlSeverデータベースクライアントをテストし、 SQL文の実行を指示し、適切に実行することができますが、OLEDBを介してSQL文を実行し、上記のエラーに関連する文書への著者のアクセスが登場、この問題に対する解決策を見つけました。

ソリューション

ライブラリは、シングルユーザーモードでデータベースを削除するように設定し、設定はすぐに次のように特定のSQL文があるロールバックされます。

ROLLBACK IMMEDIATE DROPデータベース[データベース名]でデータベース[データベース名]のSET SINGLE_USERをALTER [マスター]を使用

次のようにパッケージングは​​、データベースを削除します。

 パブリック 静的 ブール DeleteSqlServerDB(文字列 serverCon、ストリングDBNAME)
        { 
            BOOL bSuccess = 試す
            { 
                使用(SqlConnectionのconMaster = 新しいSqlConnectionオブジェクト(serverCon))
                { 
                    conMaster.Open()。
                    文字列 strExist = @ " の'name = dbo.sysdatabases SELECT * FROM " + DBNAME + " @ ' " ; 
                    SqlCommandオブジェクトcmdExist = 新しいですSqlCommandオブジェクト(strExist、conMaster)。
                    SqlDataReaderのreaderExist = cmdExist.ExecuteReader()。
                    BOOL bExist = readerExist.HasRows。
                    readerExist.Close(); 
                    もし(bExist)
                    { 
                        VARの CMDは= 新しいSqlCommandオブジェクト(
                            $ " [マスター] [{DBNAME}] ROLLBACK IMMEDIATE DROPデータベースとデータベース[{DBNAME}]のSET SINGLE_USERをALTER USE " 
                            conMaster)を、
                        cmd.ExecuteNonQuery(); 
                    } 
                    conMaster.Close()。 
                } 
                bSuccess = 
            } 
            キャッチ(例外e)
            { 
                bSuccess = 
            } 
            戻りbSuccess。
        }

注意:SqlCommandオブジェクトは、各スペースに直接、SQL文をSQL文の数を実行したりすることができます;分離すること「」。

概要

データベース操作の過程で、私たちは奇妙なエラー、継続的な学習が発生し、まとめます私たちは次のステージを入力するための唯一の方法です!あなたにこの記事は参考になりました場合は、次の注意をサポートしてください!

 

おすすめ

転載: www.cnblogs.com/aizai846/p/11431296.html