我试图在每个 SQL Server 表中创建一个
Created
和 Edited
列。我想让 Created
列具有首次创建的行的日期时间。我希望 Edited
列成为该行中某些内容被编辑的最后一个日期时间。
这就是我所拥有的:
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
这工作得很好,但是我该如何使它不能从外部编辑呢?那么只有数据库本身才能更新这些列?