Ответ 1
SELECT DATABASE_PRINCIPAL_ID('role')
--or
IF DATABASE_PRINCIPAL_ID('role') IS NULL
USER_ID устарел и может сломаться. CREATE ROLE указывает SQL 2005+, так что ОК
Я пытаюсь выяснить, как я могу проверить, существует ли роль базы данных в SQL Server. Я хочу сделать что-то вроде этого:
if not exists (select 1 from sometable where rolename='role')
begin
CREATE ROLE role
AUTHORIZATION MyUser;
end
Какую таблицу /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