SQL Server không có cách nào để xác định giá trị mặc định cho UPDATE
.
Vì vậy, bạn cần thêm một cột có giá trị mặc định để chèn:
ADD modstamp DATETIME2 NULL DEFAULT GETDATE()
Và thêm trình kích hoạt trên bảng đó:
CREATE TRIGGER tgr_modstamp
ON **TABLENAME**
AFTER UPDATE AS
UPDATE **TABLENAME**
SET ModStamp = GETDATE()
WHERE **ID** IN (SELECT DISTINCT **ID** FROM Inserted)
Và có, bạn cần chỉ định một cột nhận dạng cho mỗi trình kích hoạt.
THẬN TRỌNG:hãy cẩn thận khi chèn các cột trên bảng mà bạn không biết mã của ứng dụng. Nếu ứng dụng của bạn có lệnh INSERT VALUES mà không có định nghĩa cột, nó sẽ gây ra lỗi ngay cả với giá trị mặc định trên các cột mới.