Sql server TSQL联机检查数据库实例

Sql server TSQL联机检查数据库实例,sql-server,tsql,Sql Server,Tsql,检查Microsoft SQL Server实例是否已启动的最佳方法是什么?我有一个视图跨越两个Microsoft SQL Server实例,但在存储过程中查询它之前,我想验证服务器的第二个实例是否启用了仅查询本地数据的回退选项 第二个实例是链接服务器 目前,我正在考虑一个SQL CLR函数,该函数可以尝试以更短的超时打开连接,但我想知道是否可以直接在Transact-SQL中完成 通过链接服务器查询sys.sysdatabases(您需要权限),以下是status列的值 1 = autoclo

检查Microsoft SQL Server实例是否已启动的最佳方法是什么?我有一个视图跨越两个Microsoft SQL Server实例,但在存储过程中查询它之前,我想验证服务器的第二个实例是否启用了仅查询本地数据的回退选项

第二个实例是链接服务器


目前,我正在考虑一个SQL CLR函数,该函数可以尝试以更短的超时打开连接,但我想知道是否可以直接在Transact-SQL中完成

通过链接服务器查询sys.sysdatabases(您需要权限),以下是status列的值

1 = autoclose (ALTER DATABASE)

4 = select into/bulkcopy (ALTER DATABASE using SET RECOVERY)

8 = trunc. log on chkpt (ALTER DATABASE using SET RECOVERY)

16 = torn page detection (ALTER DATABASE)

32 = loading

64 = pre recovery

128 = recovering

256 = not recovered

512 = offline (ALTER DATABASE)

1024 = read only (ALTER DATABASE)

2048 = dbo use only (ALTER DATABASE using SET RESTRICTED_USER)

4096 = single user (ALTER DATABASE)

32768 = emergency mode

4194304 = autoshrink (ALTER DATABASE)

1073741824 = cleanly shutdown

只验证您感兴趣连接的数据库是否联机如何

select 
    name
from sys.databases
where name = 'DatabaseName'
    and state = 0 --Database is online
有关sys.databases目录视图可用列的完整参考,请参阅联机丛书:

编辑:修复SQL查询