Files
sql-scripts/EXPLOIT - change compatibility mode for all db's.sql
Schork Thierry (Galenica - ADM) 63d058a7eb added files from swmgmt03
2025-09-22 09:00:00 +02:00

45 lines
951 B
Transact-SQL

DECLARE @tpl NVARCHAR(MAX)
= N'
SET DEADLOCK_PRIORITY LOW /* to avoid killing client transaction */
ALTER DATABASE [@db@]
SET COMPATIBILITY_LEVEL = 160;
';
--begin transaction;
--set xact_abort on;
/* declare variables */
DECLARE @db VARCHAR(100);
DECLARE @query NVARCHAR(MAX) = N'';
DECLARE csr_dbs CURSOR FAST_FORWARD READ_ONLY FOR
SELECT [d].[name]
FROM [sys].[databases] d
WHERE [d].[is_read_only] = 0
AND [d].[state_desc] = 'online'
AND [d].[source_database_id] IS NULL
AND [d].[compatibility_level] <> 160;
OPEN csr_dbs;
FETCH NEXT FROM csr_dbs
INTO @db;
WHILE @@FETCH_STATUS = 0
BEGIN
SET @query = REPLACE(@tpl, '@db@', @db);
PRINT @query;
raiserror('Applying setting on %s',0,0,@db) with nowait;
exec(@query);
raiserror('done',0,0,@db) with nowait;
raiserror('-----',0,0,@db) with nowait;
FETCH NEXT FROM csr_dbs
INTO @db;
END
CLOSE csr_dbs;
DEALLOCATE csr_dbs;
--rollback transaction;