[ vujkev @ 06.09.2004. 11:59 ] @
Zamislite ovakvu situaciju:
Prva tabela (source) se nalazi u Accessu i ima 4 polja:
1. ID (autonumber)
2. Sifra (text, 16 karaktera)
3. Satus (Broj, Long Integer)
4. Datum

Druga tabela (destination) se nalazi na SQL serveru (MSDE) i ima 5 polja:
1. ID (autonumber)
2. Sifra (text, 16 karaktera)
3. Satus (Broj, Long Integer)
4. Datum
5. ID_Posla (broj, Long Integer)

Potrebno je da se:
1. iz prve tabele izdvoje samo polja gde je status "<> Null"
2. uporediti sifru iz source i destionation tabele "sifra(source)=sifra(destination)" i promeniti status (status(destination)=status(source)) za svaki record.

Nadam se da sam lepo objasno i da je neko ovo shvatio,

Ovo bih znao da uradim u VB-u, ali problem je velicina baze. Destination tabela moze da ima vise od 300.000 podataka, a source tabela i do 30.000 podataka. U VB-u ovo bi radio duuuuuuuugo, pa me interesuje neko brze resenje. Prebacivanje source tabele na SQL server ne bi bio problem sa DTS-om, ali sta dalje?
[ jablan @ 06.09.2004. 13:11 ] @
Šta će ti VB?

1) Prebaciš source tabelu u SQL server
2) uradiš
Code:
UPDATE destination SET destination.status = s.status
FROM source s
WHERE s.sifra = destination.sifra
AND s.status IS NOT NULL


Obe tabele su indeksirane po šiframa.
[ vujkev @ 06.09.2004. 14:25 ] @
hvala sad cu da probam kako ovo radi

P.S. promena podataka treba da bude samo jedna od operacija programa koji je radjen u VB-u.
[ Simke @ 07.09.2004. 07:31 ] @
Uradi INNER JOIN, bice brze od WHERE s.sifra = destination.sifra.

Znaci:

UPDATE destination SET destination.status = s.status
FROM source s
INNER JOIN destination.d ON d.sifra = s.sifra
WHERE s.status IS NOT NULL