'end' 附近的存储过程错误语法不正确

Stored Procedure Error Incorrect Syntax Near 'end'

我在使用此存储过程时遇到问题,当我尝试更改时,出现此错误:

Msg 102, Level 15, State 1, Procedure PowerDMSADSynch, Line 73 [Batch Start Line 8]
Incorrect syntax near 'end'

我不确定从哪里开始进行故障排除,感谢帮助,代码如下:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [ads].[PowerDMSADSynch]
    @report varchar(50),
    @dmsgroup  varchar(50),
    @isactive varchar(50)
AS
BEGIN
    EXEC sp_refreshview 'ads.UsersActive';
    EXEC sp_refreshview 'ads.UsersInactive';
    EXEC sp_refreshview 'ads.Users';
    EXEC sp_refreshview 'ads.Groups';

    IF OBJECT_ID('tempdb..#groupInfo') IS NOT NULL
    BEGIN
        DROP TABLE #groupInfo; 
    END

    IF OBJECT_ID('tempdb..#userInfo') IS NOT NULL
    BEGIN
        DROP TABLE #userInfo; 
    END

    ;WITH groupInfo AS
    (
        SELECT sAMAccountName, distinguishedName, report = 'CHOMP Employees' 
        FROM ads.Groups 
        WHERE sAMAccountName = 'MH_PwrDMS_Users_CHOMP' 

        UNION

        SELECT sAMAccountName, distinguishedName, report = 'CHI Employees' 
        FROM ads.Groups 
        WHERE sAMAccountName = 'MH_PwrDMS_Users_CHI' 

        UNION

        SELECT sAMAccountName, distinguishedName, report = 'ASPIRE Employees' 
        FROM ads.Groups 
        WHERE sAMAccountName = 'MH_PwrDMS_Users_AHP' 

        UNION 
   
        SELECT sAMAccountName, distinguishedName, report = 'MoGo Employees' 
        FROM ads.Groups 
        WHERE sAMAccountName = 'MH_PwrDMS_Users_MoGo'
    )   
    SELECT *
    INTO #groupInfo
    FROM groupInfo;

    SELECT 
        U.sAMAccountName "UserName", 
        U.sn "LastName",
        U.givenName "FirstName",
        U.middleName "MiddleName",
        U.mail "Email",
        U.departmentNumber "Location",
        U.title "JobTitle",
        'FALSE' "Disabled",
        U.company "Company",
        U.department "Dept Name",
        U.employeeID "Co + Dept Code",
        U.memberOf "PDMS Group Membership",
        IsActive = CASE WHEN UI.AccountID IS NULL THEN 1 ELSE 0 END
    INTO #userInfo
    FROM ads.Users U
    LEFT JOIN ads.UsersInactive UI ON U.AccountID = UI.AccountID
    WHERE U.memberOf IS NOT NULL;
 
    SELECT GI.*, UI.*
    FROM #groupInfo GI
    INNER JOIN #userInfo UI ON UI.[PDMS Group Membership] LIKE CONCAT('%', GI.distinguishedName, '%')
    WHERE (@report IS NULL OR GI.report = @report)
      AND (@dmsgroup IS NULL OR GI.sAMAccountName = @dmsgroup)
      AND (@isactive = UI.IsActive);

    IF OBJECT_ID('tempdb..#groupInfo') IS NOT NULL
    BEGIN
        DROP TABLE #groupInfo; 
    END

    IF OBJECT_ID ('tempdb..#userInfo') IS NOT NULL
    BEGIN
        DROP TABLE #userInfo; 
    END

它似乎缺少最后的 END

GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER procedure [ads].[PowerDMSADSynch]
    @report varchar(50),
    @dmsgroup  varchar(50),
    @isactive varchar(50)
    
as
begin

exec sp_refreshview 'ads.UsersActive';
exec sp_refreshview 'ads.UsersInactive';
exec sp_refreshview 'ads.Users';
exec sp_refreshview 'ads.Groups';
if object_id('tempdb..#groupInfo') is not null begin drop table #groupInfo; end
if object_id('tempdb..#userInfo') is not null begin drop table #userInfo; end

;with groupInfo as (
    select sAMAccountName, distinguishedName, report = 'CHOMP Employees' from ads.Groups where sAMAccountName = 'MH_PwrDMS_Users_CHOMP' union
    select sAMAccountName, distinguishedName, report = 'CHI Employees' from ads.Groups where sAMAccountName = 'MH_PwrDMS_Users_CHI' union
    select sAMAccountName, distinguishedName, report = 'ASPIRE Employees' from ads.Groups where sAMAccountName = 'MH_PwrDMS_Users_AHP' union
    select sAMAccountName, distinguishedName, report = 'MoGo Employees' from ads.Groups where sAMAccountName = 'MH_PwrDMS_Users_MoGo'
)   select          *
    into            #groupInfo
    from            groupInfo;

select          U.sAMAccountName "UserName", 
                U.sn "LastName",
                U.givenName "FirstName",
                U.middleName "MiddleName",
                U.mail "Email",
                U.departmentNumber "Location",
                U.title "JobTitle",
                'FALSE' "Disabled",
                U.company "Company",
                U.department "Dept Name",
                U.employeeID "Co + Dept Code",
                U.memberOf "PDMS Group Membership",
                IsActive = case when UI.AccountID is null then 1 else 0 end
into            #userInfo
from            ads.Users               U
left join       ads.UsersInactive       UI
        on      U.AccountID = UI.AccountID
where           U.memberOf is not null;
 
select          GI.*,
                UI.*
from            #groupInfo                  GI
inner join      #userInfo                   UI
        on      UI.[PDMS Group Membership]  like concat('%', GI.distinguishedName, '%')
where           (@report is null or GI.report = @report)
                AND 
                (@dmsgroup is null or GI.sAMAccountName = @dmsgroup)
                AND 
                (@isactive = UI.IsActive);

if object_id('tempdb..#groupInfo') is not null begin drop table #groupInfo; end
if object_id('tempdb..#userInfo') is not null begin drop table #userInfo; end
end