use master go create or alter function dbo.fn_hadr_group_is_primary (@agname sysname) returns bit as begin if exists (select name from sys.availability_groups) begin declare @primaryreplica sysname select @primaryreplica = hags.primary_replica from sys.dm_hadr_availability_group_states hags inner join sys.availability_groups ag on ag.group_id = hags.group_id where ag.name = @agname if upper(@primaryreplica) = upper(@@servername) return 1 -- primary else return 0 -- secondary end return 1 -- not AG server end go