Applies To: SQL Server 2014, SQL Server 2016 Preview
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.
Applies to: SQL Server (SQL Server 2008 through current version).
- [ @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.
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;