代码之家  ›  专栏  ›  技术社区  ›  Mark Brittingham

如何测试SQL Server中是否存在用户?

  •  21
  • Mark Brittingham  · 技术社区  · 17 年前

    我想在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
    

    3 回复  |  直到 13 年前
        1
  •  33
  •   Ed Harper    17 年前

    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'
    
        2
  •  2
  •   edosoft    16 年前

    在SQL 2005中:

    select * from sys.sysusers
    

    在SQL 2000中:

    select * from sysusers
    
        3
  •  -1
  •   Diganta Kumar    12 年前

    下面的代码对我有用。

    IF EXISTS (SELECT * FROM sys.syslogins WHERE name = N'MyUserName') 
    DROP LOGIN [MyUserName]
    
    推荐文章