【问题标题】:Sql Server (Entity Framework): created_at , updated_at ColumnsSql Server(实体框架): created_at , updated_at 列
【发布时间】:2010-10-05 17:10:45
【问题描述】:

我想我应该提到我正在尝试让 Entity Framework\SQL 服务器做一些我习惯于从 Rails 来的事情。我真的只是想知道为我在数据库中插入/更新的记录自动创建 created_at 和 updated_at 列值的“最佳”方式。

现在我已经加入了 ObjectContext.SavingChanges 事件,并且一切正常。然而,在我编写并测试了我的代码之后,我意识到可能有更好或更快的方法来做到这一点。

【问题讨论】:

    标签: sql-server ruby-on-rails entity-framework


    【解决方案1】:

    一种方法是使用插入/更新触发器将 created_at 和 updated_at 列设置为当前时间。

    插入触发器看起来像这样:

    CREATE TRIGGER [dbo].[inserted_myTable] ON [dbo].[myTable] AFTER INSERT
    AS 
    BEGIN
        SET NOCOUNT ON;
        UPDATE [dbo].[myTable] Set AdmitDateTime = GetDate() where pkid in (SELECT pkid FROM Inserted)
    END
    


    更新触发器看起来像这样:

    CREATE TRIGGER [dbo].[updated_myTable] ON  [dbo].[myTable] AFTER UPDATE
    AS 
    BEGIN
        SET NOCOUNT ON;
        UPDATE [dbo].[myTable] Set AdmitDateTime = GetDate() where pkid in (SELECT pkid FROM Inserted)
    END
    


    触发方法的一个优点是时间/日期将始终位于同一时区。另一个优点是,如果有人在您的应用程序之外修改了数据库记录,这些字段仍然会更新。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多