Database.CompatibilityLevel Database.CompatibilityLevel Database.CompatibilityLevel Property


Gets or sets the compatibility level for the database.

 property Microsoft::SqlServer::Management::Smo::CompatibilityLevel CompatibilityLevel { Microsoft::SqlServer::Management::Smo::CompatibilityLevel get(); void set(Microsoft::SqlServer::Management::Smo::CompatibilityLevel value); };
[Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcProperty(Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcPropertyFlags.Expensive | Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcPropertyFlags.Standalone | Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcPropertyFlags.SqlAzureDatabase | Microsoft.SqlServer.Management.Sdk.Sfc.Metadata.SfcPropertyFlags.Design)]
public Microsoft.SqlServer.Management.Smo.CompatibilityLevel CompatibilityLevel { get; set; }
Public Property CompatibilityLevel As CompatibilityLevel
Property Value

A CompatibilityLevel object value that specifies the compatibility level of the database.




'Connect to the local, default instance of SQL Server.  
Dim srv As Server  
srv = New Server  

'Reference the AdventureWorks2012 database.  
Dim db As Database  
db = srv.Databases("AdventureWorks2012")  

'Get the current compatibility level.  
Dim cl As CompatibilityLevel  
cl = db.CompatibilityLevel  

'Display the compatibility level of the database.  
Console.WriteLine("Compatibility level = " + cl.ToString)  

'Set the compatibility level to a different value.  
db.CompatibilityLevel = CompatibilityLevel.Version80  

'Restore the compatibility level to original value.  
db.CompatibilityLevel = cl  


$srv = new-Object Microsoft.SqlServer.Management.Smo.Server("(local)")  
$db = New-Object Microsoft.SqlServer.Management.Smo.Database  
$db = $srv.Databases.Item("AdventureWorks2012")  

$cl = New-Object Microsoft.SqlServer.Management.Smo.CompatibilityLevel  
$cl = $db.CompatiblityLevel  
Write-Host "Compatibility level =" $db.CompatibilityLevel  

$db.CompatibilityLevel = [Microsoft.SqlServer.Management.Smo.CompatibilityLevel]'Version80'  

$db.CompatibilityLevel =  
Write-Host "Collation is case-sensitive =" $db.CaseSensitive  


This property specifies an earlier version of SQL Server for which certain database actions are to be compatible. This property works like the sp_dbcmptlevel system stored procedure.


SMO does not support compatibility level 60. If you use SMO with a database set to compatibility level 60, some operations will produce errors. Additionally, if the CompatibilityLevel property for the MSDB database is set to Version70, SMO might throw an exception with a COLLATE error.

Applies to