如何在MsSQL中创建created_at和updated_at字段?

dok*_*han 2 database sql-server timestamp date

我想在 MsSQL 中创建created_atand updated_at

这是查询:

CREATE TABLE current_timestamp_demos
(
    id         INT PRIMARY KEY IDENTITY (1, 1),
    msg        VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
);
Run Code Online (Sandbox Code Playgroud)

一切created_at都很好,但在提交时updated_at- 在这里,ON UPDATE CURRENT_TIMESTAMP我收到一个错误。DataGrip 说了一些关于方言的内容,MySQL我猜这就是方言。

那么,我该如何创建这些created_atupdated_at字段呢?我已经创建了created_at,但是updated_at我遇到了一些问题。

小智 5

完整代码:

CREATE TABLE current_timestamp_demos
(
    id         INT PRIMARY KEY IDENTITY (1, 1),
    msg        VARCHAR(255) NOT NULL,
    created_at DATETIME2 NOT NULL DEFAULT SYSDATETIME(),
    updated_at DATETIME2 
);
GO

CREATE TRIGGER E_U_CTD
ON current_timestamp_demos
FOR UPDATE
AS
UPDATE T
SET updated_at = SYSDATETIME()
FROM   current_timestamp_demos AS T
       JOIN inserted AS i
          ON T.id = i.id;
GO
Run Code Online (Sandbox Code Playgroud)

还可以使用 SYSDATETIME() 代替 CURRENT_TIMESTAMP。