Метка времени и столбец Int для управления версиями строк в SQL Server - PullRequest
2 голосов
/ 30 декабря 2011

Я хочу применить параллелизм данных к некоторым таблицам в моей базе данных SQL Server. Чтобы добиться контроля версий строк, я думаю о добавлении столбца integer с именем RowVersion и увеличении значения строки столбца при обновлении строки.

Есть и другой вариант: использование столбца timestamp. При использовании столбца timestamp SQL Server автоматически создает уникальное значение при обновлении строки.

Я хочу знать преимущества этих опций. Я думаю, что вставка столбца int для хранения версии строки является более общим способом, тогда как вставка столбца timestamp зависит от SQL Server.

Более того, integer значение строки версии более читабельно, чем столбец timestamp.

Я хочу знать другие преимущества или недостатки, выбирая столбец integer для поля версии строки.

Спасибо.

1 Ответ

5 голосов
/ 30 декабря 2011

Если вы позволите SQL-серверу сделать это за вас, вы гарантированно получите атомарность бесплатно.(Одновременные обновления для одной и той же таблицы гарантированно приводят к разным версиям строк.) Если вы свернете свою собственную схему управления версиями строк, вам придется сделать все возможное, чтобы гарантировать атомарность самостоятельно.

...