0

これが私のクエリです:

IF EXISTS(%some query%)
BEGIN
    BEGIN TRY       

        ALTER DATABASE [MyDatabase] SET single_user WITH ROLLBACK IMMEDIATE;

        --do something
        --throw some exception

    END TRY
    BEGIN CATCH

        --here I want to set database back to multi_user

        RAISERROR ('DBErrorMessage', @ErrorSeverity, @ErrorState);
    END CATCH
END

データベースを に戻す最良の方法は何multi_userですか? 最も簡単な方法は、

データベース 'MyDatabase' は既に開いており、一度に 1 人のユーザーしか持つことができません。

例外。

最も簡単な方法で、私はこれを意味します:

ALTER DATABASE [MyDatabase] SET MULTI_USER
4

4 に答える 4

1

簡単に言うとどうなるか

ALTER DATABASE [MyDatabase] SET MULTI_USER

キャッチの後?プログラム/ストアドプロシージャからシングルユーザーになっているため、アクティブなユーザーを見つけるべきではありませんか?

また、CATCH ブロックで ROLLBACK を使用して、すべてをトランザクションに入れてみましたか?

于 2015-01-12T15:39:31.597 に答える