Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 检查外部数据库是否联机_Sql_Sql Server_Sql Server 2008 R2_Windows Server 2008 - Fatal编程技术网

Sql 检查外部数据库是否联机

Sql 检查外部数据库是否联机,sql,sql-server,sql-server-2008-r2,windows-server-2008,Sql,Sql Server,Sql Server 2008 R2,Windows Server 2008,我知道这句话告诉我“MyDatabase”数据库是在线的: select databasepropertyex('MyDatabase', 'Status') 如果我需要检查另一台服务器上的数据库,该怎么办?假设我已经有一个链接服务器,调用应该是这样的: select databasepropertyex('[192.168.111.33].MyOtherDatabase', 'Status') 但它不起作用,有人知道怎么检查吗? 谢谢。通常,您只需尝试连接到数据库,并在连接失败时捕获错误。

我知道这句话告诉我“MyDatabase”数据库是在线的:

select databasepropertyex('MyDatabase', 'Status')
如果我需要检查另一台服务器上的数据库,该怎么办?假设我已经有一个链接服务器,调用应该是这样的:

select databasepropertyex('[192.168.111.33].MyOtherDatabase', 'Status')
但它不起作用,有人知道怎么检查吗?
谢谢。

通常,您只需尝试连接到数据库,并在连接失败时捕获错误。但是,根据您的网络设置和安全性,可能无法直接连接到数据库服务器。具体如何做到这一点取决于您使用的语言和提供者

若要查看SQL Server 2008数据库是否可以接受连接,请查看排序规则属性。我知道这听起来有多奇怪,但那是真的

打开数据库时,可能会返回联机状态 目前尚未恢复。确定数据库何时可以接受 连接,查询DATABASEPROPERTYEX的排序规则属性

例如,许多数据库服务器被设置为拒绝来自除一个以外的所有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

可能必须作为传递查询运行,例如

OPENQUERY ( [192.168.111.33] ,'select databasepropertyex(MuOtherDatabase, ''Status'')' )

(假设您已经设置的链接服务器被称为[192.168.111.33],如上所述-使用IPs似乎是一种可疑的命名约定?

哪个平台?哪个数据库服务器?哪种环境?抱歉SQL Server 2008R2和Windows 2008“我知道这句话告诉我‘MyDatabase’数据库处于联机状态”不完全正确。该SQL语句尝试选择数据库的特定属性。该语句可能由于与数据库的联机或脱机状态无关的原因而失败。我只是尝试在存储过程中从SQL Server执行该操作