如何锁定SQL Server数据库以进行更改?

use*_*045 7 sql-server locking

我想确保我的数据库(SQL Server 2008)保持不变,但在某些维护操作(备份,转换到其他数据库服务器等)期间仍然可以读取,我如何以编程方式锁定C#中的更改?

Fil*_*Vos 12

您可以执行ALTER DATABASE <mydb> SET READ_ONLY以将数据库置于只读模式.

如果您希望命令失败,如果无法立即执行,请按以下方式指定:

    ALTER DATABASE <mydb> 
    SET READ_ONLY
    WITH NO_WAIT
Run Code Online (Sandbox Code Playgroud)

如果要使其回滚所有打开的连接,请指定以下命令:

    ALTER DATABASE <mydb> 
    SET READ_ONLY
    WITH ROLLBACK IMMEDIATE
Run Code Online (Sandbox Code Playgroud)

这些选项在SQL Server联机丛书中有详细记录