SQL 脚本失败并显示错误:登录名已有一个使用不同用户名的帐户

SQL 脚本失败并显示错误:登录名已有一个使用不同用户名的帐户

我有一个脚本,用于创建与 SQL Server 2005 登录名关联的用户。它在创建数据库和登录名后立即执行此操作。该脚本的一位用户报告了以下错误:

The login already has an account under a different user name

知道这种情况是怎么发生的吗?我该如何修改脚本来处理它?

答案1

在创建用户的部分中,‘UserName’ 是数据库用户名,‘LoginName’ 是服务器登录名。(它们通常相同)以下代码使用 IF NOT EXISTS 检查用户,如果用户已存在,则不会运行创建。注意:这应该在用户数据库上下文中运行,而不是主数据库上下文中。

IF  NOT EXISTS (SELECT * FROM sys.database_principals WHERE name = N'UserName')
CREATE USER [UserName] FOR LOGIN [LoginName]

相关内容