use master;
go
DECLARE UserDatabases_CTE_Cursor Cursor
FOR
— Selecting user database names.
select name as DatabaseName
from sys.sysdatabases
where ([dbid] > 4) and ([name] not like ‘$’)
OPEN UserDatabases_CTE_Cursor
DECLARE @dbName varchar(100);
DECLARE @compatQuery varchar(500);
Fetch NEXT FROM UserDatabases_CTE_Cursor INTO @dbName
While (@@FETCH_STATUS <> –1)
BEGIN
— set database compatibility level
set @compatQuery = ‘ALTER DATABASE ‘ + @dbName + ‘ SET COMPATIBILITY_LEVEL = 100;’
— Print SQL statement
print @compatQuery
— Execute compatability script
EXEC (@compatQuery)
— Get next database
Fetch NEXT FROM UserDatabases_CTE_Cursor INTO @dbName
END
CLOSE UserDatabases_CTE_Cursor
DEALLOCATE UserDatabases_CTE_Cursor
GO
— Compatibility level can be 80,90,100 on SQL server 2008/SQL server 2008 R2
— On SQL Server 2012 the allowed values are 90,100,110