一尘不染

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

sql

我试图弄清楚如何检查SQL Server中是否存在数据库角色。我想做这样的事情:

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

我应该在这里使用什么表/进程?


阅读 142

收藏
2021-03-17

共1个答案

一尘不染

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

USER_ID已过时,可能会中断。CREATE ROLE表示SQL 2005+,所以可以

2021-03-17