TSQL检查数据库实例在线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TSQL检查数据库实例在线相关的知识,希望对你有一定的参考价值。
检查Microsoft SQL Server实例是否已启动的最佳方法是什么?我有一个视图,它跨越两个Microsoft SQL Server实例,但在存储过程中查询它之前,我想验证服务器的第二个实例是否只有查询本地数据的回退选项。
第二个实例是链接服务器。
目前我正在考虑一个SQL CLR函数,它可以尝试以较短的超时打开连接,但我想知道它是否可以直接在Transact SQL中完成。
答案
如何验证您有兴趣连接的数据库是否在线?
select
name
from sys.databases
where name = 'DatabaseName'
and state = 0 --Database is online
有关sys.databases目录视图的可用列的完整参考,请参阅联机丛书:sys.databases
编辑:修复SQL查询
另一答案
通过链接服务器查询sys.sysdatabases(您需要权限),这是状态列的值
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
以上是关于TSQL检查数据库实例在线的主要内容,如果未能解决你的问题,请参考以下文章
TSQL CREATE ASSEMBLY FROM varbinary 破坏了 class_name 参数