Come sapere su quale nodo del cluster sta girando SQL Server?

In alcuni casi può essere necessario sapere su quale nodo di un cluster è in esecuzione il servizio di SQL Server, usando solamente comandi T-SQL.

Con SQL Server 2005 e 2008 questo script permette di avere le informazioni che servono:

select
    *,
    HasSQLServer = case when NodeName = host_name() then 1 else 0 end
from
    sys.dm_os_cluster_nodes

La colonna HasSQLServer verrà impostata ad 1 per il nodo sulla quale sta effettivamente girando SQL Server.

Con SQL Server 2000 è invece necessario usare il seguente:

select
    *,
    HasSQLServer = case when NodeName = host_name() then 1 else 0 end
from 
    fn_virtualservernodes()