Generate script for changing mode for multiple databases. In given script I’m setting databases to Single-user and back to normal stace. Then changing state to Read-Only and back to Read-Write, but you can use it for more database states.
It will generate T-SQL for you and you can run it then using Management Studio or by executing some script.
WARNING: Be aware of running generated script on production environment as it can make databases completely inaccessible.
-- set all user DBs to read-only mode SELECT 'ALTER DATABASE [' + name + '] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO ALTER DATABASE [' + name + '] SET MULTI_USER GO ALTER DATABASE [' + name + '] SET READ_ONLY WITH NO_WAIT GO ALTER DATABASE [' + name + '] SET READ_WRITE GO' FROM sys.databases WHERE database_id > 4
Results
Script messages after execution:
ALTER DATABASE [ReportServer] SET MULTI_USER GO ALTER DATABASE [ReportServer] SET READ_ONLY WITH NO_WAIT GO ALTER DATABASE [ReportServer] SET READ_WRITE GO ALTER DATABASE [ReportServerTempDB] SET SINGLE_USER WITH ROLLBACK IMMEDIATE GO ALTER DATABASE [ReportServerTempDB] SET MULTI_USER GO ALTER DATABASE [ReportServerTempDB] SET READ_ONLY WITH NO_WAIT GO ALTER DATABASE [ReportServerTempDB] SET READ_WRITE