[ Smireni Magnet @ 11.01.2006. 10:51 ] @
Pretpostavimo da firma u razlicitim gradovima poseduje svoje prodajno mesto i da se na svakom prodajnom mestu nalazi po jedan sql server 2000. Na svakom sql serveru se u bazi nalazi tabela Dokument koja poseduje kljuc DokumentID, koji je autoinkrement i koji za svako mesto ima posebno definisan opseg. Firma poseduje centralno mesto na koje se "slivaju" podaci iz ostalih baza u jednu centralnu.

Vazna stavak je i da se ta centralna baza koristi i za kreiranje dokumenata na tom mestu.

Poreklo dokumenta na ovaj nacin lako odredjujemo preko opsega u koji upada DokumentID. Na centralnoj bazi opseg kljuca je 0 - 1000000, dok se na drugom mestu (nazovimo ga mesto A) formira kljuc sa opsegom 1000001-2000000, itd...

Pretpostavimo da imamo na centralnom mestu formirane dokumente sa DokumentID-om 1, 2, 3, 4, a na mestu A 1000001, 1000002, 1000003, 1000004. Nakon transfera podataka iz mesta A u bazu na centralnom mestu, imamo ovih osam dokumenata sa ovim id-ovima.
Problem nastaje kada zelim da dodam u centralnu bazu novi dokument. Tada se formira kljuc 1000005, umesto 5 bez obzira na definisan opseg. Kako ovo da resim?


Hvala unapred,
SM








[ jablan @ 11.01.2006. 11:04 ] @
Ne koristi autoincrement.

Možeš napraviti malu tabelu (ime_tabele, last_key, min_key, max_key) i odgovarajuću SP za generisanje ključeva iz zadatog opsega.