我正在尝试在每个 Microsoft SQL 表中创建“已创建”列和“已编辑”列。我想让“已创建”列具有首次创建的行的日期时间。我希望“编辑”列是该行中某些内容被编辑的最后一个日期时间。
这就是我所拥有的:
CREATE TABLE Vragen
(
VraagID INT IDENTITY NOT NULL,
Tekstvraag VARCHAR(30) NOT NULL UNIQUE,
Active BIT NOT NULL DEFAULT 1,
Created DATETIME NOT NULL DEFAULT GETDATE(),
Edited DATETIME NOT NULL DEFAULT GETDATE(),
CONSTRAINT Vragen_pk_VraagnummerID PRIMARY KEY (VraagID),
CONSTRAINT Check_Tekstvraag CHECK (LEN(TRIM(Tekstvraag)) > 5 AND Tekstvraag LIKE '%?')
)
GO
CREATE TRIGGER update_vragen_trigger
ON Vragen
AFTER UPDATE AS
BEGIN
UPDATE Vragen SET Edited = GETDATE() FROM Vragen WHERE VraagID IN (SELECT VraagID FROM inserted)
END
这工作得很好,但是我该如何使它不能从外部编辑呢?那么只有数据库本身才能更新这些列?