obtener - moda sql server 2014
¿Cómo puedo determinar si existe una función de base de datos en SQL Server? (2)
Estoy tratando de averiguar cómo puedo verificar si existe una función de base de datos en SQL Server. Quiero hacer algo como esto:
if not exists (select 1 from sometable where rolename=''role'')
begin
CREATE ROLE role
AUTHORIZATION MyUser;
end
¿Qué tabla / proceso debo usar aquí?
SELECT DATABASE_PRINCIPAL_ID(''role'')
--or
IF DATABASE_PRINCIPAL_ID(''role'') IS NULL
USER_ID está en desuso y podría romperse. CREATE ROLE indica SQL 2005+ por lo que está bien
if not exists (select 1 from sys.database_principals where name=''role'' and Type = ''R'')
begin
CREATE ROLE role
AUTHORIZATION MyUser;
end