Удалить пользователя из базы данных 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 в пользовательской таблице, который вы устанавливаете, таким образом, сохраняя ссылочную целостность, если вы хотите сохранить информацию регистрации для этого пользователя.
В противном случае, похоже, что вам придется удалить ограничение внешнего ключа, которое в настоящее время не позволяет удалить, однако я бы не рекомендовал это.