Можно проверить состояние установки READ_COMMITTED_SNAPSHOT с помощью sys.databases
представление. Проверьте значение is_read_committed_snapshot_on
столбец. Уже спрошенный и ответил .
Что касается продолжительности, Книги Онлайн указывают, что не может быть никаких других соединений с базой данных, когда это происходит, но это не требует однопользовательского режима. Таким образом, Вы можете быть заблокированы другими активными соединениями. Выполненный sp_who
(или sp_who2
) для наблюдения, что еще подключено к той базе данных.
Попробуйте следующее:
ALTER DATABASE generic SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE
Try this code:
if(charindex('Microsoft SQL Server 2005',@@version) > 0)
begin
declare @sql varchar(8000)
select @sql = '
ALTER DATABASE ' + DB_NAME() + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;
ALTER DATABASE ' + DB_NAME() + ' SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE ' + DB_NAME() + ' SET MULTI_USER;'
Exec(@sql)
end