Quantcast
Channel: SQL Server
Viewing all articles
Browse latest Browse all 3819

Blog Post: SQL Server Compatibility Levels

$
0
0
Have you ever wondered what versions of SQL Server related to the compatibility levels? This article will show you the levels and also how to change existing databases to different SQL releases. This is a list of all SQL Server Compatibility Levels: Product Database Engine Version Compatibility Level Designation Supported Compatibility Level Values SQL Server vNext 14 140 140, 130, 120, 110, 100 SQL Server 2016 13 130 130, 120, 110, 100 SQL Database 12 120 130, 120, 110, 100 SQL Server 2014 12 120 120, 110, 100 SQL Server 2012 11 110 110, 100, 90 SQL Server 2008 R2 10.5 105 100, 90, 80 SQL Server 2008 10 100 100, 90, 80 SQL Server 2005 9 90 90, 80 SQL Server 2000 8 80 80 Note : Azure SQL Database V12 was released in December 2014. One aspect of that release was that newly created databases had their compatibility level set to 120. In 2015 SQL Database began support for level 130, although the default remained 120. Starting in mid-June 2016 , in Azure SQL Database, the default compatibility level will be 130 instead of 120 for newly created databases. Existing databases created before mid-June 2016 will not be affected, and will maintain their current compatibility level (100, 110, or 120). If you want level 130 for your database generally, but you have reason to prefer the level 110 cardinality estimation algorithm, see ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL) , and in particular its keyword LEGACY_CARDINALITY_ESTIMATION =ON. For details about how to assess the performance differences of your most important queries, between two compatibility levels on Azure SQL Database, see Improved Query Performance with Compatibility Level 130 in Azure SQL Database . You can change the level by issuing these commands to check/change the following: Determine Database Engine version Current database compatibility level Change the database compatibility level Execute the following query to determine the version of the Database Engine that you are connected to. SELECT  SERVERPROPERTY ( ‘ProductVersion’ ); SELECT SERVERPROPERTY('ProductVersion'); Now, you can either check a single database compatibility level: USE AdventureWorks2012 ; GO SELECT  compatibility_level FROM  sys . databases  WHERE  name  =  ‘AdventureWorks2012’ ; GO USE AdventureWorks2012; GO SELECT compatibility_level FROM sys.databases WHERE name = 'AdventureWorks2012'; GO Or you can check all of the databases compatibility levels at once: SELECT  name ,  compatibility_level  FROM  sys . databases ; SELECT name, compatibility_level FROM sys.databases; As you can tell from my results, I will not be able to change the compatibility level of any database to any of the newer releases SQL Server, like 2014 or 2016. I am using SQL Server 2012 on this instance. Note : Before proceeding, please check the Reference Microsoft article : ALTER DATABASE Compatibility Level (Transact-SQL) to see the differences between compatibility levels and also ensure you follow best practices. This syntax (example) will allow me to change the compatibility level : ALTER  DATABASE  database_name SET  COMPATIBILITY_LEVEL  =  { 140 | 130 | 120 | 110 | 100 | 90 } This command will allow me to downgrade to SQL Server 2008: ALTER  DATABASE AdventureWorks2012 SET  COMPATIBILITY_LEVEL  = 10 0 ALTER DATABASE AdventureWorks2012 SET COMPATIBILITY_LEVEL = 100 As usual, I hope this information helps you J

Viewing all articles
Browse latest Browse all 3819

Latest Images

Trending Articles



Latest Images

<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>