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'. 如果在此之前我检查数据库XYZ的状态,则ONLINE使用以下语句: SELECT state_desc FROM sys.databases WHERE name='XYZ' ...但是当我尝试使用C#应用程序连接到该数据库时,它无法连接到数据库。 错误是: 用户“ asd”的登录失败。 原因:无法打开显式指定的数据库。 我尝试了三种不同的用户(Windows用户,sa,为应用程序定义的SQL Server用户)。在操作系统启动时运行该应用程序时会发生问题,但是如果在启动后手动启动该应用程序,则不会发生任何错误,因此我认为所有SQL Server设置和防火墙设置都是正确的。 在此之前,我还检查了服务状态是否正在运行。 我还应该检查什么以确保数据库实际上已联机并且可以查询? 我正在寻找一个可以告诉我可以查询数据库的键,而不是延迟一段时间(即使不是基于明确的原因)。 我考虑过扫描错误日志中的文本“正在启动数据库XYZ”,但这意味着我必须为SQL Server错误日志的路径为应用程序添加一个设置。这也意味着要多次读取文件,直到找到该短语。