sql >> データベース >  >> RDS >> Sqlserver

SQL Serverデータベースの現在のrowversion値を返す方法(T-SQLの例)

    @@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つです。したがって、行バージョンを使用する必要があります タイムスタンプの代わりに 新しい開発作業で。また、現在タイムスタンプを使用しているアプリケーションの変更も計画する必要があります。 。


    1. MySQLでデータベースのすべての権限を付与する方法

    2. SQL Serverで先頭と末尾の空白を削除する方法– TRIM()

    3. MySQLで秒を時間値に変更する方法

    4. Debian/UbuntuでのPostgreSQLレプリケーションセットアップの作成