如何在不删除日志记录的情况下从数据库中删除用户?
该脚本应检查用户是否存在于数据库中,如果是,则删除该用户。
这是你想要做的吗?
IF EXISTS (SELECT * FROM sys.database_principals WHERE name = N'username')
DROP USER [username]
如果您使用的是SQL Server Management Studio,则可以浏览到该用户并右键单击选择删除。
您可能应该在您设置的用户表上放置一个Dropped / Deleted标志,从而在保留该用户的日志记录信息时保持参照完整性。
否则,听起来您必须删除当前阻止删除的外键约束,但我不建议这样做。
接受的答案工作得很好。另外,很高兴知道SQL Server将IF EXIST添加到版本2016(13.x)的某些DROP命令,包括'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)
希望这有帮助。