Esta función permite verificar si una cuenta pertenece a un grupo recursivamente
Sirve para utilizar en vistas, selectores de cuenta o autocomplete
Retorna un número mayor a 0 cuando pertenece al grupo o 0 cuando no pertenece
Uso:
select dbo.PERTENCE_GRUPO(<acc_id>,<acc_id_grupo>)
Script SQL
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[PERTENECE_GRUPO]
(
@accId int,
@group int
)
RETURNS int
AS
BEGIN
DECLARE @Result int;
WITH cte_acc AS (
SELECT
[ACC_ID_PARENT],
[ACC_ID_CHILD]
FROM
[SYS_ACC_REL]
WHERE [ACC_ID_CHILD] = @accId
UNION ALL
SELECT
R.[ACC_ID_PARENT],
R.[ACC_ID_CHILD]
FROM
[SYS_ACC_REL] R
INNER JOIN cte_acc o
ON o.[ACC_ID_PARENT] = R.[ACC_ID_CHILD]
)
SELECT @Result = count(*) FROM cte_acc WHERE ACC_ID_PARENT = @group;
RETURN @Result;
END
No hay comentarios:
Publicar un comentario