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

Menggunakan pemicu untuk mensimulasikan kolom identitas kedua di SQL Server 2005

Sekedar ide, jika Anda memiliki 2 kolom "identitas", maka pasti mereka akan 'sinkron' - jika nilainya tidak persis sama, maka akan berbeda dengan nilai konstan. Jika demikian, mengapa tidak menambahkan kolom "identitas kedua" sebagai COMPUTED kolom , yang mengimbangi identitas utama? Atau apakah logika saya cacat di sini?

Sunting :Sesuai komentar Martin, perhatikan bahwa perhitungan Anda mungkin perlu N * id + C, di mana N adalah Kenaikan dan C offset / delta - maafkan matematika saya yang berkarat.

Misalnya:

ALTER TABLE MyTable ADD OtherIdentity AS Id * 2 + 1;

Sunting Perhatikan bahwa untuk Sql 2012 dan yang lebih baru, Anda sekarang dapat menggunakan urutan independen untuk membuat dua atau lebih kolom yang bertambah secara independen dalam tabel yang sama.

Catatan :OP telah mengedit persyaratan asli untuk menyertakan urutan reklamasi (mencatat bahwa kolom identitas di SQL tidak mengklaim kembali ID yang digunakan setelah dihapus).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Apakah NOLOCK default untuk pernyataan SELECT di SQL Server 2005?

  2. Pesan berdasarkan tanggal turun - bulan, hari, dan tahun

  3. Debezium:Tidak ada LSN maksimum yang tercatat dalam database; harap pastikan bahwa Agen Server SQL sedang berjalan

  4. SQL Server:UPDATE tabel dengan menggunakan ORDER BY

  5. Mendapatkan Nilai Pengembalian di C# asp.net dari prosedur tersimpan (masalah sintaks)