use*_*509 5 t-sql database sql-server default
CREATE TABLE Customer
(
customerID int identity (500,20) CONSTRAINT
.
.
dateCreated datetime DEFAULT GetDate() NOT NULL,
dateModified datetime DEFAULT GetDate() NOT NULL
);
Run Code Online (Sandbox Code Playgroud)
当我插入记录时,dateCreated和dateModified设置为默认日期/时间.当我更新/修改记录时,dateModified和dateCreated保持不变?我该怎么办?
显然,我需要将dateCreated值保留为第一次插入时,dateModified会在记录字段中发生更改/修改时不断更改.
换句话说,你能写一个快速触发样本吗?我还不太了解......
Adr*_*der 10
您可能希望查看创建更新触发器以更新此值
看看像
CREATE TABLE Vals(
ID INT,
Val VARCHAR(10),
DateCreated DATETIME DEFAULT GetDate(),
DateUpdated DATETIME DEFAULT GetDate()
)
GO
CREATE TRIGGER Upd ON Vals
AFTER UPDATE
AS
UPDATE Vals
SET DateUpdated = GetDate()
FROM Vals INNER JOIN
inserted ON Vals.ID = inserted.ID
Go
INSERT INTO Vals (ID, Val) SELECT 1, 'A'
SELECT *
FROM Vals
GO
UPDATE Vals SET Val = 'B'
SELECT *
FROM Vals
GO
DROP TABLE Vals
GO
Run Code Online (Sandbox Code Playgroud)
UPDATE
Customer
SET
... = NewValue,
dateModified = DEFAULT
WHERE
...
Run Code Online (Sandbox Code Playgroud)
我会使用它,而不是使用dateModified = GETDATE()GETDATE()仅使用一次(例如,您将来想更改为GETUTCDATE())
或触发器,如果您有多个更新路径...?