Как заблокировать базу данных SQL Server для изменений?

Я хочу убедиться, что моя база данных (SQL Server 2008) остается неизменной, но по-прежнему доступна для чтения во время некоторых операций обслуживания (резервные копии, переходы на другие серверы БД и т. д), как я могу программно заблокировать его для изменений в C#?

1 ответов


вы можете выполнить 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 книги в интернете