jueves, 3 de marzo de 2022

Funcion PerteneceGrupo para SQL


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