Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Mengembalikan Nilai Rowversion Saat Ini untuk Database SQL Server (Contoh T-SQL)

Anda dapat menggunakan @@DBTS berfungsi untuk mendapatkan rowversion current saat ini dari database yang diberikan di SQL Server. Lebih khusus lagi, ini mengembalikan yang terakhir digunakan versi baris nilai database saat ini.

Contoh 1 – Penggunaan Dasar

Untuk menggunakan @@DBTS fungsi, cukup pilih dalam SELECT pernyataan.

Seperti ini:

SELECT @@DBTS;

Hasil:

+--------------------+
| (No column name)   |
|--------------------|
| 0x0000000000000FA0 |
+--------------------+

Contoh 2 – Basis Data Berbeda

Seperti disebutkan, rowversion nilai khusus untuk setiap database. Oleh karena itu, Anda perlu memastikan bahwa Anda berada di database yang tepat.

Berikut ini contoh untuk didemonstrasikan:

USE Music;
SELECT @@DBTS AS "Music rowversion";

Use WideWorldImportersDW;
SELECT @@DBTS AS "WideWorldImportersDW rowversion";

Hasil:

Changed database context to 'Music'.
+--------------------+
| Music rowversion   |
|--------------------|
| 0x00000000000007D0 |
+--------------------+
(1 row affected)
Changed database context to 'WideWorldImportersDW'.
+-----------------------------------+
| WideWorldImportersDW rowversion   |
|-----------------------------------|
| 0x0000000000015F90                |
+-----------------------------------+
(1 row affected)

Di Mana Nilai Ini Digunakan?

versi baris nilai digunakan oleh kolom yang memiliki versi baris atau stempel waktu tipe data. Kolom tersebut secara otomatis diperbarui dengan nomor unik, berdasarkan peningkatan nilai rowversion , setiap kali penyisipan atau pembaruan terjadi.

Menggunakan contoh di atas, jika saya menyisipkan atau memperbarui baris di Music database, dan baris tersebut memiliki rowversion kolom, nilai kolom itu mungkin akan disetel ke 0x00000000000007D1 (yaitu 0x00000000000007D0 bertambah 1). Pada tahap ini, jika saya menggunakan @@DBTS terhadap database itu, itu akan mengembalikan 0x00000000000007D1 (karena itulah jumlah baris yang terakhir digunakan nilai).

Jika saya kemudian memperbarui baris itu, versi baris kolom akan menjadi 0x00000000000007D2 . Ini benar, meskipun operasi pembaruan tidak benar-benar mengubah data apa pun. Kali ini, jika saya menjalankan @@DBTS itu akan mengembalikan 0x00000000000007D2 .

Untuk contoh yang menunjukkan ini, lihat Apa itu “rowversion” di SQL Server.

Stempel waktu tipe data sebenarnya adalah sinonim untuk rowversion , jadi nilai yang dikembalikan oleh @@DBTS mencerminkan rowversion current saat ini nilai apakah itu bertambah dengan rowversion kolom atau stempel waktu kolom.

Perhatikan juga bahwa stempel waktu adalah salah satu dari empat tipe data usang yang berada dalam mode pemeliharaan dan dapat dihapus di versi SQL Server yang akan datang. Karenanya Anda harus menggunakan rowversion bukannya stempel waktu dalam pekerjaan pengembangan baru. Anda juga harus merencanakan untuk memodifikasi aplikasi yang saat ini menggunakan stempel waktu .


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Penghapusan Otomatis Proses Terjebak di MS SQL Server

  2. Apakah lebih baik menjalankan banyak perintah sql dengan satu koneksi, atau menyambung kembali setiap saat?

  3. Kembalikan Semua Baris Dari Partisi Tertentu di SQL Server (T-SQL)

  4. Bagaimana cara saya terhubung ke database MSSQL menggunakan modul DBI Perl di Windows?

  5. Membatasi Sesi Pengguna Serentak untuk Login Tertentu di SQL Server