果你正在进程中恢复数据库,在恢复过程后需要做了几步工作,那么你可以用DATABASEPROPERTYEX()系统函数检查恢复过程的状态。这个函数的状态属性将表明这个数据库状态的结果。这是个SQL Server 2000里才有的新函数。下面是一个脚本的例子:
SELECT DATABASEPROPERTYEX('Northwind', 'Status')
/*
ONLINE = 数据库可以查询
OFFLINE = 数据库显式脱机
RESTORING =数据库正在恢复
RECOVERING = 数据库正在恢复,还不能查询
SUSPECT = 数据库不能恢复
*/
SQL Server 2000以前的版本,用DATABASEPROPERTY()系统函数。IsInRecovery属性将给出数据库的恢复状态。下面是SQL Server 7.0的脚本例子:
SELECT DATABASEPROPERTY('Northwind', 'IsInRecovery')
/*
1 = TRUE
0 = FALSE
NULL = Invalid input
*/
在进行数据库恢复后的几步工作前,一直检查数据库的状态,直到数据库在线可用了,不在恢复过程中为止。如果在恢复一段时间之后,没有返回一个表明数据是可用的状态,那么你需要检查数据库的其他状态。它表明:在过程继续进行前,有另外一个问题需要处理。