sql-server – 有条件地在SQL Server中创建用户

前端之家收集整理的这篇文章主要介绍了sql-server – 有条件地在SQL Server中创建用户前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如果用户不存在,我想在数据库’mydb’中创建一个用户’foo’。目前我的脚本看起来像这样:
  1. USE [mydb]
  2. CREATE USER [foo] FOR LOGIN [foo]
  3. GO

但是,如果用户已经存在,则会失败并显示错误消息:

  1. Msg 15023,Level 16,State 1,Line 2
  2. User,group,or role 'jsrvpp' already exists in the current database.

如何更改脚本,以便仅当用户不存在时创建该用户

谢谢!

解决方法

您可以参考两个系统目录sys.server_principals来检查数据库用户的特定数据库中的服务器登录名或sys.database_principals:
  1. use myDB
  2. GO
  3.  
  4. if not exists(select * from sys.database_principals where name = 'foo')
  5. -- create your database user
  6.  
  7.  
  8. if not exists(select * from sys.server_principals where name = 'foo')
  9. -- you need to create a server login first

渣子

猜你在找的MsSQL相关文章