You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS SQL Server如何实现CURRENT_TIMESTAMP自动更新及等效语法转换

SQL Server 实现更新时自动刷新时间戳的方案

SQL Server 没有MySQL自带的ON UPDATE CURRENT_TIMESTAMP语法,需要通过「字段默认值+更新触发器」组合实现相同效果,具体步骤如下:

1. 创建表时设置插入时的默认时间

创建表时给updated字段设置默认值为当前时间,实现插入记录时自动赋值的效果,语法如下:

CREATE TABLE new_table (
  updated DATETIME NOT NULL DEFAULT GETDATE()
  -- 其他字段按需添加
)

说明:如果需要使用UTC时间,把GETDATE()替换为GETUTCDATE()即可。

2. 创建更新触发器实现修改时自动刷新时间

创建AFTER UPDATE触发器,当表中任意记录被修改时自动更新updated字段为当前时间:

CREATE TRIGGER trg_new_table_update
ON new_table
AFTER UPDATE
AS
BEGIN
  -- 只更新本次修改涉及的记录,避免全表更新
  UPDATE new_table
  SET updated = GETDATE()
  FROM new_table
  INNER JOIN INSERTED ON new_table.主键字段 = INSERTED.主键字段
END

注意:需要把上面代码中的主键字段替换为你表实际的主键列名,如果是联合主键要把所有关联条件都补充完整。

补充说明

你之前使用的手动更新语句update myTable set updated = CURRENT_TIMESTAMP;在SQL Server中也可以正常执行,适合需要强制刷新时间戳的场景,日常自动更新靠上述触发器即可实现,不需要额外手动操作。

内容的提问来源于stack exchange,提问作者mello

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 18:18:05