Удалить пользователя из базы данных SQL Server?

Как я могу удалить пользователя из базы данных, не удаляя его регистрации?

Скрипт должен проверить, существует ли пользователь в базе данных, если он есть, то удалить пользователя.

3 ответа

Решение

Это то, что вы пытаетесь сделать??

IF  EXISTS (SELECT * FROM sys.database_principals WHERE name = N'username')
DROP USER [username]

Если вы используете SQL Server Management Studio, вы можете перейти к пользователю и щелкнуть правой кнопкой мыши, выбрав delete.

Принятый ответ работает достаточно хорошо. Кроме того, полезно знать, что SQL Server добавил IF EXIST к некоторым командам DROP с версии 2016 (13.x), включая команду "DROP USER".

ЕСЛИ СУЩЕСТВУЕТ

Применяется к: SQL Server ( SQL Server 2016 (13.x) до текущей версии, база данных SQL).

Условно отбрасывает пользователя, только если он уже существует.

Таким образом, вы можете просто удалить пользователя, как показано ниже:

-- Syntax for SQL Server and Azure SQL Database  
DROP USER IF EXISTS user_name  

Смотрите полное описание в этой ссылке: DROP USER (Transact-SQL)

Надеюсь, это поможет.

Вероятно, у вас должен быть просто установлен флажок Dropped/Deleted в пользовательской таблице, который вы устанавливаете, таким образом, сохраняя ссылочную целостность, если вы хотите сохранить информацию регистрации для этого пользователя.

В противном случае, похоже, что вам придется удалить ограничение внешнего ключа, которое в настоящее время не позволяет удалить, однако я бы не рекомендовал это.

Другие вопросы по тегам