sp_certify_removable (Transact-SQL)

Verifies that a database is correctly configured for distribution on removable media and reports any problems to the user.


This feature will be removed in a future version of Microsoft SQL Server. Avoid using this feature in new development work, and plan to modify applications that currently use this feature. We recommend that use CREATE DATABASE instead.

Topic link iconTransact-SQL Syntax Conventions


sp_certify_removable [ @dbname= ] 'dbname'
          [ , [ @autofix = ] 'auto' ]


  • [ **@dbname=**\] 'dbname'
    Specifies the database to be verified. dbname is sysname.
  • [ **@autofix=**\] 'auto'
    Gives ownership of the database and all database objects to the system administrator, and drops any user-created database users and nondefault permissions. auto is nvarchar(4), with a default of NULL.

Return Code Values

0 (success) or 1 (failure)


If the database is correctly configured, sp_certify_removable performs the following:

  • Sets the database offline so the files can be copied.
  • Updates statistics on all tables and reports any ownership or user problems
  • Marks the data filegroups as read-only so these files can be copied to read-only media.

The system administrator must be the owner of the database and all database objects. The system administrator is a known user that exists on all servers that are running Microsoft SQL Server and can be expected to exist when the database is later distributed and installed.

If you run sp_certify_removable without the auto value and it returns information about any of the following conditions:

  • The system administrator is not the database owner.
  • Any user-created users exist.
  • The system administrator does not own all objects in the database.
  • Nondefault permissions have been granted.

You can correct those conditions in the following ways:

  • Use SQL Server tools and procedures, and then run sp_certify_removable again.
  • Just run sp_certify_removable with the auto value.

Note that this stored procedure only checks for users and user permissions. You can add groups to the database and to grant permissions to those groups. For more information, see GRANT (Transact-SQL).


Execute permissions are restricted to members of the sysadmin fixed server role.


The following example certifies that the inventory database is ready to be removed.

EXEC sp_certify_removable inventory, AUTO

See Also


sp_create_removable (Transact-SQL)
sp_dbremove (Transact-SQL)
System Stored Procedures (Transact-SQL)

Other Resources

Detaching and Attaching Databases

Help and Information

Getting SQL Server 2005 Assistance