Saya memiliki database yang tidak dalam produksi, jadi tabel utamanya adalah CustodyDetails, tabel ini memiliki ID int IDENTITY(1,1) PRIMARY KEY
kolom dan saya sedang mencari cara menambahkan pengidentifikasi unik yang tidak direferensikan di tabel lain, saya akan berpikir dengan mengambil ini di akun isi kolom tidak akan persis kunci identitas.
Kolom identitas baru ini memiliki beberapa detail spesifik, dan di sinilah masalah saya dimulai. Formatnya adalah sebagai berikut: di XX/YY
mana XX adalah nilai tambah otomatis yang mengatur ulang / memulai kembali setiap tahun baru dan YY adalah 2 digit terakhir tahun ini SELECT RIGHT(YEAR(GETDATE()), 2)
.
Jadi misalnya mari kita berpura-pura satu catatan ditambahkan sehari mulai dari 28/12/2015 yang berakhir pada 03/01/2016 , kolomnya akan terlihat seperti:
ID ID2 DATE_ADDED
1 1/15 2015-12-28
2 2/15 2015-12-29
3 3/15 2015-12-30
4 4/15 2015-12-31
5 1/16 2016-01-01
6 2/16 2016-01-02
7 3/16 2016-01-03
Saya berpikir untuk menggunakan frontend untuk mengurai ID komposit (ID2 dalam contoh) mendapatkan 2 digit terakhir dan membandingkannya dengan 2 digit terakhir tahun ini dan kemudian memutuskan apakah akan memulai korelatif baru atau tidak. Tentu saja akan luar biasa untuk dapat melakukan semuanya di sisi basis data.
EDIT 1: btw, saya juga melihat orang menggunakan tabel terpisah hanya untuk menyimpan kunci identitas paralel, jadi satu tabel kunci Identitas menjadi kunci kedua tabel sekunder, ini terdengar agak cerdik tapi mungkin ini kasus implementasi seperti itu terjadi?
EDIT 2: ID tambahan ini adalah referensi dokumen lawas yang memberi label setiap file / catatan. Saya kira orang bisa menganggapnya sebagai alias khusus untuk ID utama.
Jumlah catatan yang ditangani oleh database ini setiap tahun belum mencapai 100 dalam 20 tahun terakhir dan sangat (sangat, sangat sangat) mustahil untuk dilakukan, tentu saja jika melebihi 99, maka bidang tersebut akan dapat Lanjutkan dengan digit tambahan dan frontend / prosedur akan dapat melampaui 99, jadi itu tidak seperti itu mengubah hal-hal.
Tentu saja beberapa perincian ini tidak saya sebutkan di awal karena mereka hanya akan mempersempit kemungkinan solusi untuk memenuhi kebutuhan spesifik saya, mencoba untuk menjaga jangkauan masalah yang lebih luas.
ID
= 5, 6, dan 7, DATE_ADDED seharusnya 2016-01-01
dan seterusnya?