Tôi không muốn sử dụng số nguyên, vì tôi không muốn phải đọc giá trị để tăng giá trị đó.
UPDATE Table SET
IntColumn = IntColumn + 1
Trong khi mà về mặt kỹ thuật đòi hỏi phải có đọc, tôi không thấy bất kỳ vấn đề với nó.
Bạn có thể luôn luôn chỉ cần cập nhật với giá trị như nhau:
UPDATE Table SET
SomeColumn = SomeColumn
mà sẽ kích hoạt cập nhật rowversion là tốt.
ADDITION: Bạn có thể làm một cái nhìn với rowversion max của trẻ em:
SELECT Parent.*, MaxChildRowVersion as ChildVersion
FROM Parent
JOIN (
SELECT ParentId, MAX(RowVersion) as MaxChildRowVersion
FROM Child
GROUP BY ParentId
) as Child ON
Parent.ParentId = Child.ParentId
Nhưng, không, bạn có thể không trực tiếp cập nhật một cột rowversion (mặc dù bạn có thể thực hiện riêng bạn có thể cập nhật với @@ DBTS, binary (8) và INSTEAD OF triggers ...)
Bạn có thể đưa ra ví dụ về điểm cuối cùng của bạn không? Nghe có vẻ đầy hứa hẹn.
Không, thực sự là không. ;) Quá nhiều công việc khi bạn chỉ có thể cập nhật lên cùng một giá trị thay vì hoặc sử dụng chế độ xem. Đó là 2 lựa chọn đơn giản nhất.
Tuy nhiên, để hoàn thành, cột nhị phân (8) với mặc định @@ DBTS (trả về số phiên bản cơ sở dữ liệu) và kích hoạt CẬP NHẬT SAU cũng cập nhật cột nhị phân sang @@ DBTS mới sẽ cung cấp cho bạn một loại psuedo-rowversion mà bạn có thể cập nhật thủ công. Nó sẽ không nhanh hơn hoặc tốt hơn là chỉ cập nhật một số cột khác với cùng giá trị.
Nguồn
2010-01-29 21:40:02
DateTime thường được sử dụng cho LastModified columns..is một cái gì đó này khác nhau hoặc bạn có thể làm rõ tại sao bạn không muốn sử dụng một DateTime? – dan
Tôi đọc một bài viết về lý do tại sao datatype DateTime không nên được sử dụng cho phiên bản và đồng thời lạc quan. Tôi không thể nhớ từng chi tiết, nhưng nó có ý nghĩa vào thời điểm đó. Tôi tin rằng đó là vì độ chính xác của kiểu dữ liệu, các bản cập nhật về mặt lý thuyết có thể xảy ra ở cùng một trường hợp chính xác gây ra các điều kiện chủng tộc. –
Chỉ khi ngày/giờ không được cung cấp bởi cơ sở dữ liệu - SQL Server DATETIMEs là các phần của giây: http://msdn.microsoft.com/en-us/library/ms187819.aspx –