Was this page helpful?
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All
Collapse the table of content
Expand the table of content
Expand Minimize

Database.CompatibilityLevel Property


Gets or sets the compatibility level for the database.

Namespace:   Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.Smo (in Microsoft.SqlServer.Smo.dll)

[SfcPropertyAttribute(SfcPropertyFlags.None | SfcPropertyFlags.Expensive | SfcPropertyFlags.Standalone | SfcPropertyFlags.SqlAzureDatabase | SfcPropertyFlags.Design | SfcPropertyFlags.Matrix)]
public CompatibilityLevel CompatibilityLevel { get; set; }

Property Value

Type: Microsoft.SqlServer.Management.Smo.CompatibilityLevel

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

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.


'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

Return to top
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2015 Microsoft