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

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

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

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

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

谢谢!

解决方法

您可以参考两个系统目录sys.server_principals来检查数据库用户的特定数据库中的服务器登录名或sys.database_principals:
use myDB
GO

if not exists(select * from sys.database_principals where name = 'foo')
  -- create your database user


if not exists(select * from sys.server_principals where name = 'foo')
   -- you need to create a server login first

渣子

原文链接:https://www.f2er.com/mssql/84619.html

猜你在找的MsSQL相关文章