Как я определяю, существует ли роль базы данных в SQL Server?

обратите внимание, насколько хорошо ключевое слово with смешивается с такими модификаторами, которые необходимо сбросить (используя Python 3 и Colorama):

from colorama import Fore, Style
import sys

class Highlight:
  def __init__(self, clazz, color):
    self.color = color
    self.clazz = clazz
  def __enter__(self):
    print(self.color, end="")
  def __exit__(self, type, value, traceback):
    if self.clazz == Fore:
      print(Fore.RESET, end="")
    else:
      assert self.clazz == Style
      print(Style.RESET_ALL, end="")
    sys.stdout.flush()

with Highlight(Fore, Fore.GREEN):
  print("this is highlighted")
print("this is not")
46
задан Jon Kruger 29 July 2009 в 15:35
поделиться

2 ответа

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

USER_ID устарел и может выйти из строя. CREATE ROLE указывает на SQL 2005+, так что все в порядке

71
ответ дан 26 November 2019 в 20:21
поделиться
if not exists (select 1 from sys.database_principals where name='role' and Type = 'R')
begin
CREATE ROLE role
    AUTHORIZATION MyUser;
end
25
ответ дан 26 November 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: