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
ユーザーをチェックするための当然の結果は何ですか?サーバーへのデータベースログインについて質問していないことに注意してください。質問は、特定のデータベースのユーザーに関係します。
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