To set the database compatability level of a database using a t-sql commmand you will use the ALTER DATABASE command.
--------------------------------------- ALTER DATABASE [database_name] SET COMPATIBILITY_LEVEL = 90 | 100 | 110 ---------------------------------------
SQL Server 2000 = compatability level 80
SQL Server 2005 = compatability level 90
SQL Server 2008 = compatability level 100
SQL Server 2012 = compatability level 110
Here is a quick and dirty script to set the compatability level of all the databases on the server:
---------------------------------------
declare @dbname varchar(128), @sql varchar(max), @level varchar(3);
set @level = '110' --- 90 | 100 | 110
declare cursor1 cursor for
select rtrim(name) from sys.databases
where databasepropertyex(name, 'Status') = 'ONLINE'
and name not in ('master', 'model', 'tempdb', 'msdb', 'distribution');
open cursor1;
fetch next from cursor1 into @dbname;
while @@fetch_status = 0
begin
set @sql = 'ALTER DATABASE ' + quotename(@dbname) + ' SET COMPATIBILITY_LEVEL = ' + @level + ';';
exec(@sql);
fetch next from cursor1 into @dbname;
end
close cursor1;
deallocate cursor1;
---------------------------------------
Here is a quick way without a CURSOR and sets it to what version is installed for the instance .
SELECT ‘ALTER DATABASE ‘ + quotename(name) + ‘ SET COMPATIBILITY_LEVEL = ‘ + (SELECT CAST(compatibility_level AS CHAR(3)) FROM sys.databases WHERE name = ‘model’) + ‘;’
FROM sys.databases
WHERE compatibility_level (SELECT compatibility_level FROM sys.databases WHERE name = ‘model’)