どのようにSQL Serverのユーザーが存在するかどうかをテストしますか?
-
21-08-2019 - |
質問
私は、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]
所属していません StackOverflow