Transact-SQL 参考

sp_certify_removable

验证数据库是否已为在可移动介质上分发而正确配置,并向用户报告所有问题。

语法

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

参数

[@dbname =] 'dbname'

指定要验证的数据库。dbname 的数据类型为 sysname

[@autofix =] 'auto'

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

返回代码值

0(成功)或 1(失败)

注释

如果数据库配置正确,sp_certify_removable 会将数据库设置为脱机,以便复制文件。此过程将更新所有表的统计信息,并报告任何所有权问题或用户问题。此外,还将数据文件组标记为只读,以便将这些文件复制到只读介质。

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

如果运行没有 auto 值的 sp_certify_removable,并且返回信息表明系统管理员不是数据库的所有者、存在用户创建的用户、系统管理员未拥有数据库的所有对象、或授予非默认的权限,则可以通过以下两种方法纠正这些问题:

  1. 使用 SQL Server 工具和过程,然后运行 sp_certify_removable

  2. 只需运行具有 auto 值的 sp_certify_removable

注意,此存储过程只检查用户和用户权限。允许向数据库添加组并对这些组授予权限。有关更多信息,请参见 GRANT

此过程将验证信息写入文本文件,文件名的格式如下:

CertifyR_[dbname].txt

说明  xp_cmdshell 上的权限必须允许该文件写入。

权限

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

示例

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

sp_certify_removable inventory, AUTO

请参见

sp_attach_db

sp_create_removable

sp_dboption

sp_dbremove

系统存储过程