2009-07-29 76 views

回答

58
SELECT DATABASE_PRINCIPAL_ID('role') 
--or 
IF DATABASE_PRINCIPAL_ID('role') IS NULL 

USER_ID已弃用,可能会中断。 CREATE ROLE表示SQL 2005+所以它没关系

+0

@Klaus:尝试并创建一个具有相同名称的角色+用户。它会失败。 https://msdn.microsoft.com/en-us/library/ms187328.aspx“name”colun是唯一的 – gbn 2017-03-23 13:26:10

+1

好点。是的,该名称在用户,组和角色之间必须是唯一的。我删除了我以前的评论。谢谢。 – 2017-03-23 22:25:15

23
if not exists (select 1 from sys.database_principals where name='role' and Type = 'R') 
begin 
CREATE ROLE role 
    AUTHORIZATION MyUser; 
end 
相关问题