What’s in Enterprise only? (Change Data Capture)

Starting with version 2008, SQL Server introduced a feature called Change Data Capture which provides information about DML changes on a table and a database. Change Data Capture eliminates the need to use expensive techniques such as user triggers, timestamp columns, and join queries to determine what changes have affected a given table.

However, CDC is only supported in the Enterprise edition (or a Developer Edition or an Evaluation Edition, both of which behave exactly like the Enterprise does. The only difference among them three is their licensing.). Not running an Enterprise edition and trying to enable CDC in any database, will raise error 22988 “This instance of SQL Server is the %s. Change data capture is only available in the Enterprise, Developer, and Enterprise Evaluation editions.”

Errors also occur if a non-Enterprise edition instance of SQL attempts to startup a database (from a backup or from a set of files attached to the instance) which has CDC enabled for any of its tables.

In that case, the database startup process would fail to bring it online, the database will be marked suspect to indicate that something went wrong during startup, and will report error 934 in the Application Event Log and in SQL Server’s ERRORLOG. The descriptive message for that error is “SQL Server cannot load database '%.*ls' because Change Data Capture is enabled. The currently installed edition of SQL Server does not support Change Data Capture. Either disable Change Data Capture in the database by using a supported edition of SQL Server, or upgrade the instance to one that supports Change Data Capture.” That error will be followed by error 933 “Database '%.*ls' cannot be started because some of the database functionality is not available in the current edition of SQL Server.”

This post is part of the a series I decided to call “Understanding the value of the Enterprise Edition, one feature at a time” which I started in September 2011 and will grow on a weekly basis, having a new post incorporated to the family every Friday.