如何为表创建用户,创建日期,修改用户,修改日期编写查询

时间:2010-12-14 14:45:50

标签: sql sql-server

我需要帮助知道如何自动使表格加载创建用户,创建日期,修改后的用户和修改日期的值,

一旦任何数据进入表格,我们应该修复创建的用户和创建的日期列值,但修改后的用户和修改日期应该更改

3 个答案:

答案 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