2
SSMS和注册服务器结果
背景: 我们正在尝试为我们的一个支持团队创建AG“主要”测试工具。不知道在任何给定时间哪些服务器将是指示它们针对已注册服务器组执行TSQL的主要服务器。注册的服务器组由AG中的所有服务器组成。目标是仅在当前主服务器上执行TSQL: 当前测试线束: IF EXISTS (SELECT * FROM sys.dm_hadr_availability_replica_states AS HARS INNER JOIN sys.dm_hadr_availability_replica_cluster_states AS HACS ON HACS.replica_id = HARS.replica_id WHERE (HARS.role_desc = 'PRIMARY') AND (HACS.replica_server_name LIKE @@SERVERNAME)) BEGIN <<SOME CODE TO EXECUTE>> END 问题: 如果第一台响应多服务器查询的服务器未返回任何结果,则SSMS将假定正确的结果集为没有结果集,即使其他服务器随后返回了结果集也是如此。因此,在这种情况下,不会返回任何结果……这是不正确的,也不是预期的功能。 谁能想到使用SSMS(这是CS团队最熟悉的工具)强制在当前主服务器上执行的方法吗?