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)


Public Property CompatibilityLevel As CompatibilityLevel
public CompatibilityLevel CompatibilityLevel { get; set; }
property CompatibilityLevel CompatibilityLevel {
    CompatibilityLevel get ();
    void set (CompatibilityLevel value);
/** @property */
public CompatibilityLevel get_CompatibilityLevel ()

/** @property */
public void set_CompatibilityLevel (CompatibilityLevel value)
public function get CompatibilityLevel () : CompatibilityLevel

public function set CompatibilityLevel (value : CompatibilityLevel)

Property Value

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


Updated text:17 July 2006

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


SQL Server Management Objects (SMO) does not support compatibility level 60. If you use SMO with a database set to compatibility level 60, some operations will produce errors.


If the CompatibilityLevel property for the MSDB database is set to Version70 SMO may throw an exception with a COLLATE error.

This namespace, class, or member is supported only in version 2.0 of the Microsoft .NET Framework.


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

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

'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

Thread Safety

Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.


Development Platforms

For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.

Target Platforms

For a list of the supported platforms, see Hardware and Software Requirements for Installing SQL Server 2005.

See Also


Database Class
Database Members
Microsoft.SqlServer.Management.Smo Namespace

Other Resources

How to: Create, Alter, and Remove a Database in Visual Basic .NET
Creating, Altering, and Removing Databases

Change History



17 July 2006

Changed content:
  • Added text to the Remarks section.

  • Added code to the Example section.