SP を実行すると、次のエラー メッセージが表示されます。
メッセージ 102、レベル 15、状態 1、行 1
「.」付近の構文が正しくありません。
ケースステートメントなしでSQLをテストしたところ、機能し、管理者である全員が返されました。
ALTER PROCEDURE [dbo].[GetRoles]
AS
DECLARE @num varchar(25),
@reportid Decimal,
@dom varchar(10)
set @reportid = 1
set @dom = 'use5'
SELECT @num =
Case @reportid
WHEN 1 THEN
'select distinct u.id as userId, u.domain, u.isAdmin, u.email, u.canReport, a.[site],
a.bldgNum, a.dataCenterNum, l.shortName, l.[description], a.canApprove, a.canComplete
from locAdmin a inner join location l on (a.site=l.site and a.bldgNum = l.bldgNum
and a.dataCenterNum = l.dataCenterNum) right outer join [user] u on u.id=a.userId
and u.domain=a.domain where u.isAdmin = 1'
End
EXEC (@num)
また、distinct は何らかの理由で重複するユーザー ID も除外しません。一部のユーザーIDは、アクセス権に応じて3回入力されます(これは、私が入る前に設定された方法です)