TIMESTAMP
là một cái tên đáng tiếc mà nhóm SQL Server đã cung cấp cho kiểu dữ liệu. Nó dành cho đồng thời và không liên quan gì đến ngày hoặc giờ - họ đã khuyến nghị sử dụng bí danh của nó, ROWVERSION
để tránh nhầm lẫn. Từ bài viết Sách Trực tuyến này, "Trong các câu lệnh DDL, hãy sử dụng chuyển đổi hàng thay vì dấu thời gian nếu có thể."
Rất tiếc, bạn sẽ không thể lấy bất kỳ chi tiết ngày / giờ nào từ ROWVERSION
cột bạn đã có, nhưng nếu thông tin này quan trọng, bạn nên thêm cột Ngày tạo / Ngày sửa đổi, ví dụ:
ALTER TABLE dbo.foo ADD CreatedDate DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP;
ALTER TABLE dbo.foo ADD ModifiedDate DATETIME NULL;
Sau đó, tạo TRIGGER
sẽ kích hoạt vào UPDATE
để giữ giá trị ModifiedDate hiện tại. Bạn có thể cần quyết định xem bạn có muốn Ngày sửa đổi là NULL
hay không hoặc bằng CreatedDate khi khởi chạy.