CREATE PROCEDURE [dbo].[GetPrincipalID]
@UserSid varbinary(85) = NULL,
@UserName nvarchar(260),
@AuthType int,
@UserID uniqueidentifier OUTPUT
AS
IF @AuthType = 1
BEGIN
SELECT @UserID = (SELECT UserID FROM Users WHERE Sid = @UserSid AND UserType = 1 AND AuthType = @AuthType)
END
ELSE
BEGIN
SELECT @UserID = (SELECT UserID FROM Users WHERE UserName = @UserName AND UserType = 1 AND AuthType = @AuthType)
END
IF @UserID IS NULL
BEGIN
IF @AuthType = 1
BEGIN
SELECT @UserID = (SELECT UserID FROM Users WHERE Sid = @UserSid AND UserType = 0 AND AuthType = @AuthType)
END
ELSE
BEGIN
SELECT @UserID = (SELECT UserID FROM Users WHERE UserName = @UserName AND UserType = 0 AND AuthType = @AuthType)
END
IF @UserID IS NULL
BEGIN
SET @UserID = newid()
INSERT INTO Users
(UserID, Sid, UserType, AuthType, UserName)
VALUES
(@UserID, @UserSid, 1, @AuthType, @UserName)
END
ELSE
BEGIN
UPDATE Users SET UserType = 1 WHERE UserID = @UserID
END
END
GO
GRANT EXECUTE ON [dbo].[GetPrincipalID] TO [RSExecRole]
GO