@@DBTS
を使用できます 現在の行バージョンを取得する関数 SQLServerの特定のデータベースの具体的には、最後に使用したを返します。 行バージョン 現在のデータベースの値。
例1-基本的な使用法
@@DBTS
を使用するには 関数、SELECT
内で選択するだけです ステートメント。
このように:
SELECT @@DBTS;
結果:
+--------------------+ | (No column name) | |--------------------| | 0x0000000000000FA0 | +--------------------+
例2–さまざまなデータベース
前述のように、行バージョン 値は各データベースに固有です。したがって、適切なデータベースにいることを確認する必要があります。
デモンストレーションの例を次に示します。
USE Music; SELECT @@DBTS AS "Music rowversion"; Use WideWorldImportersDW; SELECT @@DBTS AS "WideWorldImportersDW rowversion";
結果:
Changed database context to 'Music'. +--------------------+ | Music rowversion | |--------------------| | 0x00000000000007D0 | +--------------------+ (1 row affected) Changed database context to 'WideWorldImportersDW'. +-----------------------------------+ | WideWorldImportersDW rowversion | |-----------------------------------| | 0x0000000000015F90 | +-----------------------------------+ (1 row affected)
この値はどこで使用されますか?
行バージョン 値は、行バージョンのいずれかを持つ列によって使用されます またはタイムスタンプ データ・タイプ。このような列は、 rowversion の増分値に基づいて、一意の番号で自動的に更新されます。 、挿入または更新が発生するたび。
上記の例を使用して、Music
に行を挿入または更新すると データベースであり、その行には行バージョンがあります 列の場合、その列の値はおそらく0x00000000000007D1
に設定されます。 (つまり、0x00000000000007D0
1)ずつ増加します。この段階で、@@DBTS
を使用する場合 そのデータベースに対して、0x00000000000007D1
を返します。 (これが最後に使用された行数であるため 値)。
次にその行を更新すると、その行バージョン 列は0x00000000000007D2
になります 。これは、更新操作で実際にデータが変更されなかった場合でも当てはまります。今回は、@@DBTS
を実行すると 0x00000000000007D2
を返します 。
これを示す例については、SQLServerの「rowversion」とは
を参照してください。
タイムスタンプ データ型は実際にはrowversionの同義語です 、したがって、@@DBTS
によって返される値 現在の行バージョンを反映します 行バージョンによって増分されたかどうかの値 列またはタイムスタンプ 桁。
タイムスタンプにも注意してください は、メンテナンスモードであり、SQLServerの将来のバージョンで削除される可能性がある4つの非推奨のデータ型の1つです。したがって、行バージョンを使用する必要があります タイムスタンプの代わりに 新しい開発作業で。また、現在タイムスタンプを使用しているアプリケーションの変更も計画する必要があります。 。