sp_certify_removable (Transact-SQL)

APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

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

IMPORTANT!! instead.

Topic link icon Transact-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

Database Detach and Attach (SQL Server)
sp_create_removable (Transact-SQL)
sp_dbremove (Transact-SQL)
System Stored Procedures (Transact-SQL)