0

当我需要启动应用程序时,我有一个数据库备份文件,如果数据库部分恢复,我想显示警告。

如何在 C# 中检测/识别当前数据库以完全或部分模式恢复。

4

2 回答 2

1

如果数据库不是 AccessReady/ONLINE,用户将无法连接到数据库。您与数据库服务器建立的原始连接确保您连接到系统数据库之一。Master/MSDB/TEMPDB 等...之后,您将需要在此系统数据库之一中安装一个存储过程,您可以从应用程序重复调用它让您说每 5 秒一次,如果您的数据库可以重新访问,那么它会给您一个结果. 您的程序将需要这个简单的查询

IF EXISTS(SELECT TOP 1 1 FROM sys.databases WHERE name= 'your DB name' AND state_desc = 'Online' )

SELECT 'DB is ready to Access'

ELSE SELECT '数据库尚未准备好访问'

于 2013-09-30T14:04:07.563 回答
0

我找到了解决问题的方法,谢谢大家的帮助!

var restoreType = dbContext.Database.SqlQuery<string>(@"Select restore_type FROM [msdb].[dbo].[restorehistory]").FirstOrDefault<string>();

通过这种方式,我将检索数据库恢复类型: - 如果 restoreType = "D" 则数据库已完全恢复!- 否则,如果“F”比我知道数据库已部分恢复!

如果您使用的是另一种连接,则来自 EF 的这个 DbContext 可以只使用 T-Sql 语句。

于 2013-10-01T09:54:38.247 回答