Frage

Ich möchte einen Benutzer in einer SQL Server-Skript fallen, aber ich werde die Existenz testen müssen zuerst oder ich Skriptfehler erhalten. Wenn Tabellen oder gespeicherte Prozeduren fallen, überprüfe ich die sysobjects Tabelle wie folgt:

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

Was ist die logische Folge für einen Benutzer zur Überprüfung? Beachten Sie, dass ich nicht mit dem Server über eine Datenbank-Anmeldung am gefragt! Die Frage bezieht sich auf einen Benutzer in einer bestimmten Datenbank.

War es hilfreich?

Lösung

SSMS Skripte es auf folgende Weise:

Für SQL 2005/2008:

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

Für SQL 2000:

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

Andere Tipps

In SQL 2005:

select * from sys.sysusers

In SQL 2000:

select * from sysusers

Der folgende Code für mich gearbeitet.

IF EXISTS (SELECT * FROM sys.syslogins WHERE name = N'MyUserName') 
DROP LOGIN [MyUserName]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top