SQL Server Express数据库处于"恢复中"-如何检测/知道何时

时间:2020-03-06 14:21:50  来源:igfitidea点击:

当SQL Server Express数据库处于"正在恢复"状态时,我们将无法使用SQL身份验证进行连接。

在连接数据库之前,是否有一种简单的方法可以确定数据库的状态?
(使用.Net)

解决方案

SELECT DATABASEPROPERTYEX ('master', 'STATUS') AS 'Status';

将" master"替换为数据库名称

这是一个技巧问题。除了连接到该特定数据库外,我们仍然需要连接到服务器本身,但是要指定一个不同的数据库。连接时,默认数据库可能是正在恢复的数据库。在这种情况下,我们需要在连接时指定其他数据库,然后发出查询以检查数据库的扩展属性。

不幸的是,这意味着SQL登录名将需要我们将要连接到的其他数据库的权限,并且还需要权限来查询数据库的扩展属性。