Ya vimos recientemente cómo averiguar desde una consulta SQL quién es el Nodo propietario de una Instancia de SQL Server. En esta ocasión vamos a ver cómo averiguar cuáles son los Nodos de una Instancia de SQL Server desde una consulta SQL, que igualmente, en varias situaciones nos podrá resultar de bastante utilidad.
Básicamente, lo único que tenemos que hacer es consultar la función del sistema fn_virtualservernodes, la cual nos devolverá una fila para cada Nodo del Cluster. Sin embargo, esta función va a estar Deprecated en un futuro, por lo que para nuevos desarrollos es recomendable que utilicemos la Vista Dinámica del Sistema sys.dm_os_cluster_nodes (mucho más completa y que reemplaza a fn_virtualservernodes, aunque no funciona en SQL Server 2000).
Si deseamos obtener en una variable de texto la lista de Nodos que forman Cluster, podemos utilizar la función COALESCE, como ya comentamos hace tiempo en el artículo Acumulado: Pasar múltiples Filas a una Columna, en una consulta SQL sin cursores. A continuación se muestra una consulta de ejemplo, que podríamos variar fácilmente para utilizar también con sys.dm_os_cluster_nodes.
DECLARE @ClusterNodes [nvarchar](256) SELECT @ClusterNodes = COALESCE(@ClusterNodes+', ' ,'') + [Nodename] FROM ::fn_virtualservernodes() |
Poco más por hoy. Como siempre, confío que la lectura resulte de interés.
|