'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
我在使用此存储过程时遇到问题,当我尝试更改时,出现此错误:
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