小编Ahm*_*med的帖子

SQL Server 数据库何时准备好接受查询?

在 SQL Server 错误日志文件中,我发现了以下几行:

2018-02-22 14:10:58.95 spid17s     Starting up database 'msdb'.
2018-02-22 14:10:58.95 spid16s     Starting up database 'ReportServer'.
2018-02-22 14:10:58.95 spid18s     Starting up database 'ReportServerTempDB'.
2018-02-22 14:10:58.95 spid19s     Starting up database 'XYZ'.
Run Code Online (Sandbox Code Playgroud)

如果我在此之前检查数据库 XYZ 的状态,则ONLINE使用以下语句:

SELECT state_desc FROM sys.databases WHERE name='XYZ'
Run Code Online (Sandbox Code Playgroud)

...但是当我尝试使用 C# 应用程序连接到该数据库时,它无法连接到该数据库。

错误是:

用户“asd”登录失败。
原因:无法打开明确指定的数据库。

我尝试了三个不同的用户(为应用程序定义的 Windows 用户、sa、SQL Server 用户)。当我在操作系统启动时运行应用程序时会出现问题,但是如果我在启动后手动启动它,则不会发生错误,因此我认为所有 SQL Server 设置和防火墙设置都是正确的。

在此之前,我还检查了服务状态是否正在运行。

我还应该检查什么以确保数据库实际上在线并准备好进行查询?

我正在寻找一个密钥,它告诉我可以查询数据库,而不是延迟一段时间(甚至不是基于明确的原因)。

我想扫描文本“启动数据库'XYZ'”的错误日志,但这意味着我必须为SQL Server错误日志的路径添加应用程序的设置。这也意味着多次阅读文件,直到我找到这句话。

sql-server-2008 sql-server startup

12
推荐指数
1
解决办法
2572
查看次数

标签 统计

sql-server ×1

sql-server-2008 ×1

startup ×1