Ho un database che non è in produzione, quindi la tabella principale è CustodyDetails, questa tabella ha una ID int IDENTITY(1,1) PRIMARY KEY
colonna e sto cercando un modo per aggiungere un altro identificatore univoco a cui non fa riferimento in nessun'altra tabella, penserei prendendo questo in conto il contenuto della colonna non sarebbe esattamente una chiave di identità.
Questa nuova colonna di identità ha però alcuni dettagli specifici, ed ecco dove inizia il mio problema. Il formato è il seguente: XX/YY
dove XX è un valore auto-incrementabile che reimposta / riavvia ogni anno nuovo e YY è le ultime 2 cifre dell'anno corrente SELECT RIGHT(YEAR(GETDATE()), 2)
.
Quindi, ad esempio, facciamo finta che un record venga aggiunto un giorno a partire dal 28/12/2015 fino al 03/01/2016 , la colonna sarebbe simile a:
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
Ho pensato di usare il frontend per analizzare l'ID composito (ID2 nell'esempio) per ottenere le ultime 2 cifre e confrontarle con le ultime 2 cifre dell'anno in corso e quindi decidere se iniziare o meno un nuovo correlativo. Ovviamente sarebbe grandioso poter fare tutto dal lato del database.
EDIT 1: a proposito, ho visto anche persone che usano tabelle separate solo per memorizzare chiavi di identità parallele, quindi una chiave Identity di una tabella diventa una seconda chiave secondaria di tabella, sembra un po 'confusa ma forse è il caso che tale implementazione venga messa in atto?
MODIFICA 2: questo ID aggiuntivo è un riferimento al documento legacy che identifica ogni file / record. Immagino che si possa pensare ad esso come un alias speciale per l'ID principale.
Il numero di record che questo database gestisce annualmente non è stato tra i 100 negli ultimi 20 anni ed è altamente (davvero, estremamente altamente) improbabile che, ovviamente, se supera i 99, il campo sarà in grado di vai avanti con la cifra in più e la procedura / frontend sarà in grado di superare 99, quindi non è come se cambiasse le cose.
Naturalmente alcuni di questi dettagli non ho menzionato all'inizio perché restringerebbero solo le possibilità di soluzione per soddisfare le mie esigenze specifiche, cercando di mantenere il problema più ampio.
ID
= 5, 6 e 7, DATE_ADDED dovrebbe essere 2016-01-01
e così via?