我希望我的数据库(SQL Server 2008)在某些维护操作期间(备份,转移到其他DB服务器等)仍然可以进行读取,但保持不可变状态,如何在C#中以编程方式锁定更改?
我希望我的数据库(SQL Server 2008)在某些维护操作期间(备份,转移到其他DB服务器等)仍然可以进行读取,但保持不可变状态,如何在C#中以编程方式锁定更改?
您可以执行ALTER DATABASE <mydb> SET READ_ONLY
将数据库设置为只读模式。
如果希望该命令在无法立即执行时失败,可以按如下指定:
ALTER DATABASE <mydb>
SET READ_ONLY
WITH NO_WAIT
如果你想让它回滚所有打开的连接,你需要将命令指定为如下方式: ALTER DATABASE <mydb>
SET READ_ONLY
WITH ROLLBACK IMMEDIATE
这些选项在SQL Server图书在线文档中有很好的说明。
WITH NO_WAIT
,这样当由于存在未完成的事务等原因无法执行命令时,它会立即失败。或者您可以指定WITH ROLLBACK IMMEDIATE
,使其回滚所有未完成的事务。 - Filip De Vos