Pergunta

Eu gostaria de deixar cair um usuário em um script SQL Server, mas eu vou ter de testar a existência de primeiro ou vou receber erros de script. Ao deixar cair tabelas ou procedimentos armazenados, eu verificar a tabela sysobjects assim:

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

O que é o corolário para a verificação de um usuário? Note que eu não estou perguntando sobre um login de banco de dados para o servidor! A questão diz respeito a um usuário em um banco de dados específico.

Foi útil?

Solução

SSMS scripts de TI da seguinte maneira:

Para o SQL 2005/2008:

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

Para o SQL 2000:

IF  EXISTS (SELECT * FROM dbo.sysusers WHERE name = N'username')
EXEC dbo.sp_revokedbaccess N'username'

Outras dicas

No SQL 2005:

select * from sys.sysusers

No SQL 2000:

select * from sysusers

O código a seguir trabalhou para mim.

IF EXISTS (SELECT * FROM sys.syslogins WHERE name = N'MyUserName') 
DROP LOGIN [MyUserName]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top