/**
*角色组删除
*/
IF EXISTS ( SELECT *
FROM sys.objects
WHERE object_id = OBJECT_ID(N'[dbo].[QX_RoleGroup_Del]')
AND type IN ( N'P', N'PC' ) )
BEGIN
DROP PROCEDURE QX_RoleGroup_Del
END
GO
CREATE PROC QX_RoleGroup_Del
@nodeid NVARCHAR(50) ,
@rp INT OUTPUT
AS
BEGIN
DECLARE @RoleGroup_ID INT
DECLARE @RoleGroup_PID INT
SET @rp = 0
BEGIN TRY
SET @RoleGroup_ID = @nodeid
SET @RoleGroup_PID = @nodeid
WHILE ( EXISTS ( SELECT *
FROM QX_RoleGroup
WHERE RoleGroup_ID = @nodeid ) )
BEGIN
IF ( EXISTS ( SELECT *
FROM QX_RoleGroup
WHERE RoleGroup_PID = @RoleGroup_ID
AND RoleGroup_ID != @RoleGroup_ID ) )
BEGIN
SET @RoleGroup_PID = @RoleGroup_ID
SET @RoleGroup_ID = ( SELECT TOP 1
RoleGroup_ID
FROM QX_RoleGroup
WHERE RoleGroup_PID = @RoleGroup_ID
AND RoleGroup_ID != @RoleGroup_ID
)
END
ELSE
BEGIN
--删除工作组关联角色
DELETE FROM dbo.QX_WorkRole_RoleGroup
WHERE RoleGroup_ID = @RoleGroup_ID
--删除工作组
DELETE FROM QX_RoleGroup
WHERE RoleGroup_ID = @RoleGroup_ID
SET @RoleGroup_ID = @RoleGroup_PID
SET @RoleGroup_PID = ( SELECT TOP 1
RoleGroup_PID
FROM QX_RoleGroup
WHERE RoleGroup_ID = @RoleGroup_PID
)
END
END
END TRY
BEGIN CATCH
SET @rp = -1
END CATCH
END