如何使用Windows身份验证信息更新上次修改的用户?

时间:2016-03-18 10:26:32

标签: sql-server

我有一个包含SQL Server销售记录的表sales。我需要一个列modified_by,它显示最后修改的actor(用户)。列modified_by应填入与 Windows身份验证相关的用户ID。

         id      content  modified_by
-----------  -----------  -----------
          1          foo          Tom
          2          bar         Jack

如果Tom更新了Jack的记录,那么对于记录2,modified_by列将显示Tom

此UPDATE操作应由服务器自动完成,以进行每次记录修改。有可能吗?我应该使用触发器吗?

2 个答案:

答案 0 :(得分:3)

我们可以使用TRIGGER在INSERT或UPDATE语句

之后检查行
CREATE TRIGGER dbo.after_update ON dbo.sales
AFTER INSERT, UPDATE
AS
    UPDATE dbo.sales
    SET modified_by = SYSTEM_USER
    FROM inserted
    WHERE inserted.id = dbo.sales.id

MSDN: CREATE TRIGGER (Transact-SQL)

答案 1 :(得分:0)

update table 
set lastmodifiedby =suser_sname()

更多信息here

您还可以创建一个上次修改为默认值的表格。

create table tt
(
id int,
lastmodifiedby varchar(100) default suser_sname()
)