如何获得删除记录的用户?

时间:2019-06-05 14:52:29

标签: sql sql-server tsql

我正在尝试创建一个历史表来存储删除的记录以及删除记录的用户。我知道如何存储记录,但不知道用户。

表定义如下:

CREATE TABLE HistoryComics(
    Id           INT IDENTITY PRIMARY KEY,
    ComicId       INT,
    Title         NVARCHAR(50),
    Author        NVARCHAR(50),
    [Description]     TEXT,
    Issue         INT,
    Publisher     VARCHAR(20),
    CoverPage     VARBINARY(MAX),
    DateDeleted   DATETIME DEFAULT SYSDATETIME(),
    DeletedBy     VARCHAR(20)
);

我已经看到了使用MySQL而不是T-SQL的示例

1 个答案:

答案 0 :(得分:0)

您应该使用CURRENT_USER / SUSER_SNAME(SQL Server 2008+)。

将默认值添加到列DeletedBy是安全的。

但是,请注意,两个都返回sysname,这意味着nvarchar(128)。

此外,这意味着您应该扩大表定义。

“如何捕获已删除的记录”主题的一个很好的起点是我在

上发表的文章

SQL Server Central。

How to Capture Deleted Records

有关USER_NAME (Transact-SQL)SUSER_SNAME (Transact-SQL)的更多信息