我有一张这样的桌子:
id name modified
11 John 2016-07-12 15:49:45
22 Abraham 2016-07-12 15:52:03
我需要更新跟踪一行最后修改日期的“修改”列。我已经使用触发器做到了这一点,但读过触发器会消耗性能。有没有办法使用约束来做到这一点?
我有一张这样的桌子:
id name modified
11 John 2016-07-12 15:49:45
22 Abraham 2016-07-12 15:52:03
我需要更新跟踪一行最后修改日期的“修改”列。我已经使用触发器做到了这一点,但读过触发器会消耗性能。有没有办法使用约束来做到这一点?
可以在 UPDATE 子句中使用 DEFAULT 约束和 DEFAULT 关键字。请参见以下示例:
CREATE TABLE UpdateTest
(
ID int IDENTITY,
Name varchar(10),
Modified datetime2(2) CONSTRAINT DF_Modified DEFAULT (SYSDATETIME())
)
--ID from IDENTITY, Modified from DEFAULT implicitly
INSERT UpdateTest(Name) VALUES('Test')
--Modified from DEFAULT explicitly
UPDATE UpdateTest SET Name='Test2', Modified=DEFAULT