BEGIN TRANSACTION DELETE FROM SYS_PERMISSIONS_PAGE_FOR_USER DECLARE @index_ent INT = 1; -- Set this value as required DECLARE @TLNAME NVARCHAR(255), @BRANCH_ID NVARCHAR(255), @DEP_ID NVARCHAR(255), @ROLE_NEW NVARCHAR(255), @EFF_DATE VARCHAR(50), @EXP_DATE VARCHAR(50), @NOTES NVARCHAR(255), @ROLE_NEW_DISPLAY NVARCHAR(255); -- Declare cursor to iterate through the records DECLARE role_cursor CURSOR FOR SELECT A.TLNAME, A.BRANCH_ID, A.DEP_ID, A.EFF_DATE, A.EXP_DATE, A.NOTES FROM TL_SYS_ROLE_MAPPING A LEFT JOIN AbpRoles B ON A.ROLE_NEW = B.DisplayName WHERE A.TLNAME IS NOT NULL AND A.AUTH_STATUS = 'A' AND A.RECORD_STATUS = '1' AND A.ROLE_NEW = 'GDDV' AND A.IS_MAIN = 1 OPEN role_cursor; FETCH NEXT FROM role_cursor INTO @TLNAME, @BRANCH_ID, @DEP_ID, @EFF_DATE, @EXP_DATE, @NOTES; -- Loop through each record WHILE @@FETCH_STATUS = 0 BEGIN DECLARE @DONE_INS_APPROVE_GROUP BIT=1, @ERROR_MESS NVARCHAR(MAX); EXEC SYS_PERMISSIONS_PAGE_FOR_USER_Ins_ADMIN 'DuLlieuUyQuyenCu', -- @p_AuthorizedNumber @TLNAME, -- @p_TLNAME @BRANCH_ID, -- @p_BRANCH_ID @DEP_ID, -- @p_DEP_ID 51, -- @p_RoleId @EFF_DATE, -- @p_EffectiveDate @EXP_DATE, -- @p_ExpirationDate '', -- @p_Notes 'admin', -- @p_MAKER_ID '', -- @p_CREATE_DT 'A', -- @p_AUTH_STATUS 'admin', -- @p_CHECKER_ID '', -- @p_APPROVE_DT '1', -- @p_RECORD_STATUS 'UQ', -- @p_TYPE @DONE_INS_APPROVE_GROUP OUTPUT, -- @DONE_INS_APPROVE_GROUP OUT @ERROR_MESS OUTPUT; -- @ERROR_MESS OUT SELECT @DONE_INS_APPROVE_GROUP, @ERROR_MESS IF @@Error <> 0 GOTO ABORT -- Increment the index SET @index_ent = @index_ent + 1; -- Fetch next record FETCH NEXT FROM role_cursor INTO @TLNAME, @BRANCH_ID, @DEP_ID, @EFF_DATE, @EXP_DATE, @NOTES; END; -- Clean up cursor CLOSE role_cursor; DEALLOCATE role_cursor; COMMIT TRANSACTION ABORT: BEGIN ROLLBACK TRANSACTION SELECT @DONE_INS_APPROVE_GROUP = 0, @ERROR_MESS = N'Xảy ra lỗi trong quá trình sinh quyền kiêm nhiệm phòng ban con' End