7
我想通过SQL Server 2005/2008中的T-SQL脚本创建用户。我运行下面的SQL来检查用户是否存在和创建用户,如果它不:SQL Server:如何检查数据库中是否存在一个Windows用户,但使用不同的用户名
IF NOT EXISTS (SELECT *
FROM sys.database_principals
WHERE name = N'MyDomain\MyUser')
BEGIN
CREATE USER [MyDomain\MyUser] FOR LOGIN [MyDomain\MyUser] WITH default_schema=[dbo];
SELECT 1;
END
ELSE
BEGIN
SELECT 0;
END
不幸的是,这并不在Windows帐户MYDOMAIN \ MYUSER已经在数据库中,但下一个工作不同的名字。例如,如果MyDomain \ MyUser是创建数据库的帐户,那么它将已经在dbo用户的数据库中。如果是这样,我得到了以下错误的情况下:
Msg 15063, Level 16, State 1, Line 1 The login already has an account under a different user name.
如何检查如果Windows用户MYDOMAIN \ MYUSER已经在数据库中的用户,即使它是根据不同的用户名?
梦幻般的答案。谢谢达米安。 – 2011-06-02 09:35:35
我需要从'sys.syslogins'中选择,而'SUSER_SID' – 2012-02-20 13:46:32