如何确定SQL Server中是否存在数据库angular色?

我试图找出如何检查SQL Server中是否存在数据库angular色。 我想要做这样的事情:

if not exists (select 1 from sometable where rolename='role') begin CREATE ROLE role AUTHORIZATION MyUser; end 

我应该在这里使用什么table / proc?

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

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

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