You've already forked ssms-addin
mirror of
https://github.com/alex-bochkov/ssms-addin.git
synced 2026-06-15 16:57:06 +02:00
Create dbo.fn_ag_is_primary.sql
This commit is contained in:
@@ -0,0 +1,46 @@
|
|||||||
|
USE master;
|
||||||
|
GO
|
||||||
|
|
||||||
|
CREATE OR ALTER FUNCTION dbo.fn_ag_is_primary(@AGName sysname NULL)
|
||||||
|
RETURNS bit
|
||||||
|
AS
|
||||||
|
BEGIN
|
||||||
|
DECLARE @ServerName NVARCHAR(256) = @@SERVERNAME
|
||||||
|
DECLARE @RoleDesc NVARCHAR(60)
|
||||||
|
|
||||||
|
IF @AGName IS NULL
|
||||||
|
BEGIN
|
||||||
|
IF (SELECT COUNT(*) FROM sys.availability_groups) > 1
|
||||||
|
BEGIN
|
||||||
|
RETURN 0;
|
||||||
|
END
|
||||||
|
|
||||||
|
SELECT @AGName = AG.name FROM sys.availability_replicas AR
|
||||||
|
INNER JOIN sys.availability_groups AG
|
||||||
|
ON AR.group_id = AG.group_id
|
||||||
|
WHERE replica_server_name = @ServerName
|
||||||
|
END
|
||||||
|
ELSE
|
||||||
|
BEGIN
|
||||||
|
IF NOT EXISTS(SELECT 1 FROM sys.availability_groups WHERE name = @AGName)
|
||||||
|
BEGIN
|
||||||
|
RETURN 0;
|
||||||
|
END
|
||||||
|
END
|
||||||
|
|
||||||
|
SELECT @RoleDesc = a.role_desc
|
||||||
|
FROM sys.dm_hadr_availability_replica_states AS a
|
||||||
|
JOIN sys.availability_replicas AS b
|
||||||
|
ON b.replica_id = a.replica_id
|
||||||
|
INNER JOIN sys.availability_groups AG
|
||||||
|
ON a.group_id = AG.group_id
|
||||||
|
WHERE b.replica_server_name = @ServerName
|
||||||
|
AND AG.name = @AGName
|
||||||
|
|
||||||
|
IF @RoleDesc = 'PRIMARY'
|
||||||
|
BEGIN
|
||||||
|
RETURN 1;
|
||||||
|
END
|
||||||
|
|
||||||
|
RETURN 0;
|
||||||
|
END
|
||||||
Reference in New Issue
Block a user