我知道这句话告诉我'MyDatabase'数据库在线:
select databasepropertyex('MyDatabase', 'Status')
如果我需要从另一台服务器检查数据库怎么办?假设我已经有一个链接服务器,调用应该是这样的:
select databasepropertyex('[192.168.111.33].MyOtherDatabase', 'Status')
但它不起作用,任何人都知道如何检查这个? 谢谢。
答案 0 :(得分:0)
通常,您只是尝试连接到数据库,并在连接失败时捕获错误。但是,根据您的网络设置和安全性,可能无法直接连接到数据库服务器。具体如何,取决于您使用的语言和提供程序。
Some online examples of connection strings>
要查看SQL Server 2008数据库是否可以接受连接,请查看Collation属性。我知道听起来有多奇怪,但那是the documented way。
打开数据库时可能会返回ONLINE状态 并且尚未恢复。识别数据库何时可以接受 连接,查询DATABASEPROPERTYEX的Collation属性。
例如,许多数据库服务器设置为拒绝来自除 one 之外的所有IP地址的连接。这在基于Web的设置中尤为常见;这是一项基本的安全措施。在这种情况下,这样的连接(紧接在下面)将起作用。应用程序服务器或Web服务器上的代码尝试连接到数据库服务器,如果失败则返回错误。
Your server --> Application server --> Database server
or workstation or web server
但是这样的连接不会,因为数据库服务器被配置为仅接受来自应用程序服务器或Web服务器的连接。
Your server ----------------------------> Database server
or workstation
Application server
or web server
答案 1 :(得分:0)
可能必须作为传递查询运行,例如
OPENQUERY ( [192.168.111.33] ,'select databasepropertyex(MuOtherDatabase, ''Status'')' )
(假设您已设置的链接服务器被称为[192.168.111.33],如上所述 - 似乎是使用IP的可疑命名约定?)