我需要帮助知道如何自动使表格加载创建用户,创建日期,修改后的用户和修改日期的值,
一旦任何数据进入表格,我们应该修复创建的用户和创建的日期列值,但修改后的用户和修改日期应该更改
答案 0 :(得分:1)
您可以将日期时间列的列的默认值设置为GetDate()
,将当前用户的列的默认值设置为SYSTEM_USER
。这有利于创建记录。
对于修改列,您需要添加触发器。
还值得一读......
How to use system_user in audit trigger but still use connection pooling?
答案 1 :(得分:0)
承认你的表结构看起来像这样 - 不要忘记DEFAULT GETDATE() - :
YourTable
---------
CreatedUser
CreatedDate DEFAULT GETDATE()
ModifierUser
ModifierDate
在插入时触发一个函数,它将ModifiedUser和ModifiedDate更新为GETDATE()
答案 2 :(得分:0)
对于createdby和createtime,您可以使用列默认值:
CreatedAt DATETIME DEFAULT GETDATE(),
CreatedBy VARCHAR(100) DEFAULT USER
对于UpdatedAt,您必须创建一个设置值的触发器:
CREATE TRIGGER [t_Table_upd] ON YourTable AFTER UPDATE AS
set nocount on
UPDATE YourTable
set
YourTable.[Modified] = getdate(),
YourTable.[ModifiedBy] = USER,
YourTable.[Version] = YourTable.[Version] + 1
FROM
DELETED d
WHERE
YourTable.ID = d.ID