【发布时间】:2010-11-15 03:05:24
【问题描述】:
我试图弄清楚如何检查 SQL Server 中是否存在数据库角色。我想做这样的事情:
if not exists (select 1 from sometable where rolename='role')
begin
CREATE ROLE role
AUTHORIZATION MyUser;
end
我应该在这里使用什么表/proc?
【问题讨论】:
标签: sql sql-server
我试图弄清楚如何检查 SQL Server 中是否存在数据库角色。我想做这样的事情:
if not exists (select 1 from sometable where rolename='role')
begin
CREATE ROLE role
AUTHORIZATION MyUser;
end
我应该在这里使用什么表/proc?
【问题讨论】:
标签: sql sql-server
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
【讨论】:
(select top 1 from...吗?