2017-09-19 63 views
0

我想创建一个触发器来更新另一列的初始更新后的两列。带有INSERTED WHERE子句的触发器

这是我到目前为止有:

CREATE TRIGGER triggerName 
ON tableName 
AFTER UPDATE 
AS 
BEGIN 
    SET NOCOUNT ON 

    IF UPDATE (columnName) 
    BEGIN 
     UPDATE tableName 
     SET dateColumn = CURRENT_TIMESTAMP, 
      userColumn = SUSER_NAME 
     FROM INSERTED 
     WHERE tableName.PrimaryID = INSERTED.PrimaryID 
    END 
END 

我得到的错误:

无效列名 'SUSER_NAME'。

我该如何去解决这个问题?

+2

尝试'SUSER_SNAME()'。 –

+0

WOW,那工作... wth ...如果你将它添加为答案生病高兴地接受它@DanGuzman – AznDevil92

回答

3

SUSER_SNAME功能需要括号:

UPDATE tableName 
SET dateColumn = CURRENT_TIMESTAMP, 
    userColumn = SUSER_NAME() 
FROM INSERTED 
WHERE tableName.PrimaryID = INSERTED.PrimaryID;