【问题标题】:Can I have a date+timestamp column in sql server db update automatically on insert or update?我可以在插入或更新时自动更新 sql server db 中的 date+timestamp 列吗?
【发布时间】:2011-12-10 18:40:30
【问题描述】:

我想在我的表中有一个名为 ModifiedDate 的列,它会在插入或更新行时自动更新。不用在使用 db 的 c# 客户端中编写代码就可以做到这一点吗?

复制 AdventureWorks2008R2 示例数据库中的类似列,我尝试使用 datetime2 数据类型 + 将列默认值指定为“(getdate())”,但这对我不起作用

有没有办法在数据库级别做到这一点,所以我不依赖客户端应用程序编码人员在他们的 c# 应用程序中设置字段?

【问题讨论】:

    标签: sql-server timestamp adventureworks


    【解决方案1】:

    使用默认值怎么样? 在插入期间,如果您没有提供任何值,则该列将使用提供的默认值进行更新。

    CREATE TABLE Orders
    (
    O_Id int NOT NULL,
    OrderNo int NOT NULL,
    P_Id int,
    OrderDate date DEFAULT GETDATE()
    )
    

    【讨论】:

    • 这就是我试图通过将列的默认值设置为“(getdate())”来做的,但这对我不起作用 - 应该是那么简单还是我错过了设置步骤是这样吗?
    • @GaryBarrett 我不确定您是如何在查询中使用 GETDATE() 方法的,我正在使用 W3schools 的一个示例代码更新我的答案以检查您的语法...
    【解决方案2】:

    查看 SQL 文档(复制粘贴不会让您变得更聪明) - 您要查找的关键字是 TRIGGER。触发器可以对插入/更新/删除做出反应并更新插入/更新的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-28
      • 2014-08-08
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      相关资源
      最近更新 更多