Как вы проверяете наличие пользователя в SQL Server?

Я хотел бы добавить пользователя в сценарий SQL Server, но сначала мне нужно проверить его наличие, либо я получу ошибки сценария. При отбрасывании таблиц или сохраненных процедур я проверяю таблицу sysobjects следующим образом:

IF EXISTS (
    SELECT * 
    FROM   sysobjects 
    WHERE  id = object_id(N'[dbo].[up_SetMedOptions]') 
    AND    OBJECTPROPERTY(id, N'IsProcedure') = 1
)
Drop Procedure up_SetMedOptions;
GO

Что является следствием проверки для пользователя? Обратите внимание, что я НЕ спрашиваю о входе базы данных на сервер! Вопрос относится к пользователю в конкретной базе данных.

10.12.2008 13:17:33
3 ОТВЕТА
РЕШЕНИЕ

Сценарии SSMS это следующим образом:

Для SQL 2005/2008:

IF  EXISTS (SELECT * FROM sys.database_principals WHERE name = N'username')
DROP USER [username]

Для SQL 2000:

IF  EXISTS (SELECT * FROM dbo.sysusers WHERE name = N'username')
EXEC dbo.sp_revokedbaccess N'username'
33
10.12.2008 13:25:54

В SQL 2005:

select * from sys.sysusers

В SQL 2000:

select * from sysusers
2
22.04.2010 13:37:55

Код ниже работал для меня.

IF EXISTS (SELECT * FROM sys.syslogins WHERE name = N'MyUserName') 
DROP LOGIN [MyUserName]
-1
3.11.2013 23:59:56
Вопрос, в частности, гласит: «Я НЕ спрашиваю о входе базы данных на сервер». Ваше решение удалит логин и оставит осиротевшего пользователя базы данных .
Paul Sturm 13.11.2014 13:52:02