Вы можете сохранить вывод хранимой процедуры sp_helpuser
в табличной переменной и запросить ее:
declare @groups table (
UserName varchar(max),
GroupName varchar(max),
LoginName varchar(max),
RefDBName varchar(max),
DefSchemaName varchar(max),
UserId int,
SID varbinary(max)
)
insert into @groups exec sp_helpuser 'TheUser'
if exists (select * from @groups where GroupName = 'TheRole')
begin
print 'Removing user from role...'
exec sp_droprolemember 'TheRole', 'TheUser'
end
Однако выполнение sp_droprolemember
не повредит, независимо от того, находится ли пользователь в роли.