2

msdnから

各データベースには、データベース内の rowversion 列を含むテーブルに対して実行される挿入操作または更新操作ごとにインクリメントされるカウンターがあります。

また

データベースの現在の rowversion 値を返すには、@@DBTS を使用します。

私はデータベースを持っています(テーブルが1つしかなく、タイムスタンプ/行バージョンフィールドがないと信じています)

ここに画像の説明を入力

しかし、select @@DBTS を実行すると、rowversion 列があるかのような結果が得られます。

ここに画像の説明を入力

(ps - 挿入/更新 - この値は更新されません) .

  • この値は何ですか?

  • rowversion column を持たないのはなぜですか?

4

1 に答える 1

6

この値は何ですか?

rowversionこれは、列の実装に使用されるデータベース内のカウンターの値です。

rowversion column を持たないのはなぜですか?

引用したドキュメントには、各データベースにそのようなカウンターがあると書かれています。次に、列を含むテーブルに対する操作によってインクリメントされることを示していますrowversion

このカウンターの存在は、データベースにそのようなテーブルが存在することに依存しているとは言いません。


次のように解析します。

A)各データベースにはカウンターがあります

B) インクリメントされる

C) 実行される各挿入または更新操作

D) テーブルの上

E) rowversion 列を含む

F) データベース内。

(E) と (F) は (D) に適用される条件です。(C) は、(D) に対するどの操作によって (B) が発生するかを示します。(BF) のどれも (A) の真偽に影響を与えません。


0x0000000000000000 またはその他の値から開始する必要があることを示すドキュメント (私が見つけることができる) もありません。この列の唯一の目的が順序を決定できるようにすること (X が Y の後または Y の前に発生) であることを考えると、実際に返される値が何であるかは重要ではありません。

于 2012-12-03T13:06:07.240 に答える