質問

私は、SQL Serverのスクリプトでユーザーを削除したいのですが、私は最初の存在をテストする必要がありますか私はスクリプトエラーを取得します。テーブルまたはストアドprocsのをドロップすると、私はそうのような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

ユーザーのためにチェックするための当然の帰結とは何ですか?私は、サーバーへのデータベースログインについて尋ねないですことに注意してください!質問は、特定のデータベース内のユーザーに関係します。

役に立ちましたか?

解決

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'

他のヒント

SQL 2005でます:

select * from sys.sysusers

SQL 2000でます:

select * from sysusers

以下のコードは、私のために働いています。

IF EXISTS (SELECT * FROM sys.syslogins WHERE name = N'MyUserName') 
DROP LOGIN [MyUserName]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top