如何在SQL Server查询中添加监听程序名称列?
修正后的查询(新增监听程序名称列)
你的原查询存在别名定义错误(tr未关联到实际表),以下是修正并新增监听程序名称的版本:
select ar.replica_server_name as ReplicaServerName, trs.role_desc as ReplicaRole, agl.dns_name as ListenerName from sys.availability_replicas ar inner join sys.availability_groups ag on ar.group_id = ag.group_id left join sys.availability_group_listeners agl on ag.group_id = agl.group_id inner join sys.dm_hadr_availability_replica_states trs on trs.replica_id = ar.replica_id where ar.replica_server_name = @@servername
关键说明:
- 用
left join关联sys.availability_group_listeners是为了兼容未配置监听程序的可用性组,避免查询无结果 agl.dns_name对应监听程序的对外标识名称- 修正了原查询中别名错误的问题,将未定义的
tr替换为实际表别名ar
内容的提问来源于stack exchange,提问作者user3297431
相关产品推荐
相关产品推荐

