0

同じ SQL データベースにアクセスする一連のプログラム (親プロセスと子プロセスを考慮) があります。これは、プログラムの過程で取り付けたり取り外したりします。両方のプロセスがアクセスしたときにデタッチしようとすると問題が発生します。接続はすべて閉じられていますが、sp_detach ストアド プロシージャを実行しようとすると、使用中のためデタッチできないというエラー メッセージが表示されます。マルチプロセス アクセスについて対処する必要があるものはありますか?

4

1 に答える 1

0

すべての接続が閉じられている場合、マルチプロセスアクセスについては特に何もありません。あなたの場合、接続の1つが本当に閉じられていないのではないかと思いますが、閉じていると思います。

sp_detachを呼び出す前に、次のコードを実行します。

ALTER DATABASE [YourDbName]
SET SINGLE_USER WITH ROLLBACK IMMEDIATE;

私は常に、これが防御コーディングの精神におけるこの種の自動化された手順のベストプラクティスだと思います。(通常、自動化されたプロセスのベストプラクティスの途中でデータベースを切り離すと考えるわけではありません)

于 2012-10-31T20:51:33.337 に答える