sp_add_data_file_recover_suspect_db (Transact-SQL)

如果由于文件组上的空间不足(错误 1105)而导致对一个数据库的恢复不能完成,请向文件组中添加一个数据文件。 添加数据文件后,该存储过程禁用可疑设置并完成数据库的恢复。 这些参数与 ALTER DATABASE database_name ADD FILE 的参数相同。

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

语法

sp_add_data_file_recover_suspect_db [ @dbName= ] 'database' 
    , [ @filegroup = ] 'filegroup_name' 
    , [ @name = ] 'logical_file_name' 
    , [ @filename= ] 'os_file_name' 
    , [ @size = ] 'size' 
    , [ @maxsize = ] 'max_size' 
    , [ @filegrowth = ] 'growth_increment'

参数

  • [ @dbName= ] **'**database '
    数据库的名称。 database 的数据类型为 sysname,无默认值。

  • [ @filegroup= ] **'**filegroup_name '
    要向其中添加文件的文件组。 filegroup_name 的数据类型为 nvarchar(260),默认值为 NULL(指示主文件)。

  • [ @name= ] **'**logical_file_name '
    在 SQL Server中引用文件时使用的名称。 名称在服务器中必须是唯一的。 logical_file_name 的数据类型为 nvarchar(260),无默认值。

  • [ @filename= ] **'**os_file_name '
    由操作系统使用的文件的路径和文件名。 该文件必须驻留在数据库引擎实例中。 os_file_name 的数据类型为 nvarchar(260),无默认值。

  • [ @size= ] **'**size '
    文件的初始大小。 size 的数据类型为 nvarchar(20),默认值为 NULL。 指定一个整数,不包含小数位。 可以使用 MB 和 KB 后缀指定兆字节或千字节。 默认值为 MB。 最小值为 512 KB。 如果未指定 size,则默认值为 1 MB。

  • [ @maxsize= ] **'**max_size '
    文件可增至的最大文件大小。 max_size 的数据类型为 nvarchar(20),默认值为 NULL。 指定一个整数,不包含小数位。 可以使用 MB 和 KB 后缀指定兆字节或千字节。 默认值为 MB。

    如果未指定 max_size,则文件将增长到磁盘变满为止。 当磁盘将满时,Microsoft Windows 应用程序日志会向管理员发出警告。

  • [ @filegrowth= ] **'**growth_increment '
    每次需要新空间时添加到文件中的空间量。 growth_increment 的数据类型为 nvarchar(20),默认值为 NULL。 0 值表示不增长。 指定一个整数,不包含小数位。 该值可按 MB、KB 或百分比 (%) 形式指定。 如果指定百分比 (%),则增量大小为发生增长时文件大小的指定百分比。 如果未在数量后面指定 MB、KB 或 %,则默认值为 MB。

    如果 growth_increment 为 NULL,则默认值为 10%,最小值为 64 KB。 指定的大小舍入为最接近的 64 KB 的倍数。

返回代码值

0(成功)或 1(失败)

结果集

权限

执行权限默认授予 sysadmin 固定服务器角色的成员。 这些权限是不可传递的。

示例

在以下示例中,由于文件组 fg1 中空间不足(错误 1105),数据库 db1 被标记为可疑。

USE master;
GO
EXEC sp_add_data_file_recover_suspect_db db1, fg1, file2,
    'C:\Program Files\Microsoft SQL     Server\MSSQL11.MSSQLSERVER\MSSQL\Data\db1_file2.mdf', '1MB';

请参阅

参考

ALTER DATABASE (Transact-SQL)

sp_add_log_file_recover_suspect_db (Transact-SQL)

系统存储过程 (Transact-SQL)