sp_certify_removable (Transact-SQL)

验证是否正确配置数据库以便在可移动媒体上分发,并向用户报告所有问题。

重要说明重要提示

后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。。建议您改用 CREATE DATABASE

主题链接图标Transact-SQL 语法约定

语法

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

参数

  • [ @dbname = ] 'dbname'
    指定要验证的数据库。dbname 的数据类型为 sysname

  • [ @autofix=] 'auto'
    对系统管理员授予数据库及所有数据库对象的所有权,并除去任何用户创建的数据库用户及非默认的权限。auto 的数据类型为 nvarchar(4),默认值为 NULL。

返回代码值

0(成功)或 1(失败)

注释

如果正确配置了数据库,则 sp_certify_removable 将执行下列操作:

  • 将数据库设置为脱机,以便复制文件。

  • 更新所有表的统计信息,并报告任何所有权问题或用户问题。

  • 将数据文件组标记为只读,以便将这些文件复制到只读媒体中。

系统管理员必须是数据库和所有数据库对象的所有者。系统管理员是存在于所有正在运行 Microsoft SQL Server 的服务器上已知用户,而且在稍后分发和安装数据库时仍然存在。

如果运行没有 auto 值的 sp_certify_removable,它将返回有关下列任一情况的信息:

  • 系统管理员不是数据库所有者。

  • 存在用户创建的任何用户。

  • 系统管理员并非拥有数据库中的所有对象。

  • 已授予非默认权限。

可以使用下列方法更正这些情况:

  • 使用 SQL Server 工具和过程,然后再次运行 sp_certify_removable

  • 只需运行具有 auto 值的 sp_certify_removable

注意,该存储过程只检查用户和用户权限。可以向数据库添加组并且对这些组授予权限。有关详细信息,请参阅GRANT (Transact-SQL)

权限

执行权限只授予 sysadmin 固定服务器角色的成员。

示例

下面的示例验证 inventory 数据库已准备好删除。

EXEC sp_certify_removable inventory, AUTO