私はUserRoleを返すプロシージャ"GetCurrentUserRoleByDomainLogin"
を持っています。 そして、別の手順(GroupInsertUpdateDelete
)の条件でこの手順を実行したいのですが、構文エラーです。別のプロシージャから1つのプロシージャをコールし、MS SQLを返す値を使用します
これは "GetCurrentUserRoleByDomainLogin" です:
CREATE PROCEDURE [dbo].[GetCurrentUserRoleByDomainLogin]
AS
SELECT UserRole FROM [User]
JOIN Role on [User].UserRole=Role.RoleId
WHERE [User].DomainLogin = (SELECT SYSTEM_USER)
これは "GroupInsertUpdateDelete:" です。この文字列は私に構文エラーになります
CREATE PROCEDURE [dbo].[GroupInsertUpdateDelete]
@GroupName nvarchar(50),
@GroupRole nvarchar(50),
@StatementType nvarchar(50),
@UserRole nvarchar(50) = CALL GetCurrentUserRoleByDomainLogin
AS
IF EXISTS (SELECT * FROM Groups WHERE [email protected])
PRINT 'Group with such GroupName already exists'
ELSE
IF @StatementType = 'Insert' AND @UserRole = 'Admin'
BEGIN
insert into [Group]
(GroupName,RoleName)
values (@GroupName, @GroupRole)
PRINT 'Group was added successfully'
END
IF @StatementType = 'Update' AND @UserRole = 'Admin'
BEGIN
UPDATE [Group]
SET GroupName = @GroupName,
GroupRole = @GroupRole
WHERE GroupName = @GroupName
PRINT 'Group was updated successfully'
END
IF @StatementType = 'Delete' AND @UserRole = 'Admin'
BEGIN
DELETE FROM [Group] WHERE GroupName = @GroupName
PRINT 'Group was deleted successfully'
END
IF @StatementType = 'Select'
BEGIN
SELECT * from [Group]
END
:
@UserRole nvarchar(50) = CALL GetCurrentUserRoleByDomainLogin
だから、 "GroupInsertUpdateDelete"プロシージャの "GetCurrentUserRoleByDomainLogin"プロシージャをコールし、変数に返す値を入れて、 "if文"の最後の値をチェックしたいといいです。どうしたらいいですか?