[ maliradoznalac @ 12.03.2009. 14:12 ] @
imam MS SQL bazu kojoj pristupam kroz jedan kompllikovan interfejs. Nakon nekoliko dana neprestalnog unosa podataka ustanovio sam da svi zapisi koji su uneseni imaju gresku u istoj koloni. svuda je po defaultu unesen broj 1 a treba npr broj 4. Da bi ispravio sve to, moram svaki zapis da otvorim u za to namenjenoj formi pa tek onda da ispravljam. To bi mi oduzelo previse vremena.
Da li postoji mogucnost da na neki nacin pristupim mdf fajlu i da u njemu direktno izvrsim izmenu. Hteo bi da dobijem prikaz tih podataka kao jednu tabelu i da to prepravim. Malo sam cackao po MS SQL Server Menagement Studio Express, ali nisam tamo uspeo da dobijem prikaz podataka vec samo strukturu tabele

[ mmix @ 12.03.2009. 15:08 ] @
rclick na tabelu i imas edit rows

ali bolje da to uradis query-em nego rucno

Code:
update tabela
set polje = 4 
where polje = 1


naravno pod uslovom da svi kecevi treba da se promene u 4
[ maliradoznalac @ 12.03.2009. 15:21 ] @
ma rucno cu, i to mi je super extra brzo u odnosu na one glupave forme.

u svakom slucaju HVALA PUNOOOO
[ maliradoznalac @ 12.03.2009. 16:10 ] @
SuperMod, jos jedna mala molba

predomislio sam se kada sam video da ima preko 5000 zapisa koje moram da izmenim, ipak cu da da napisem query

ali mi nesto ne radi

evo da moj query

Code:

update EOcjenaUcenika
set Semestar = 4 
where Semestar = 1


a izbaci mi gresku

Code:

Msg 208, Level 16, State 1, Line 1
Invalid object name 'EOcjenaUcenika'.


cak sam probao da copy/paste iz Object Explorera naziv tabele, ali nista

gde gresim???
[ Fedya @ 12.03.2009. 16:31 ] @
Da li si izbarao pravu bazu? da ne pokusavas na master?
otkucaj

use ime_baze

pre update-a
[ maliradoznalac @ 12.03.2009. 16:44 ] @
izgleda da jos nesto ne radim kako treba

Code:

use EIS
update EOcjenaUcenika
set Semestar = 4 
where Semestar = 1



mi izbaci gresku

Code:

Msg 2627, Level 14, State 1, Line 1
Violation of PRIMARY KEY constraint 'PK_EOcjenaUcenika'. Cannot insert duplicate key in object 'EOcjenaUcenika'.
The statement has been terminated.

(0 row(s) affected)
[ Fedya @ 13.03.2009. 09:20 ] @
Da li siguran sta radis?
Koliko vidim tvoja tabela EOcjenaUcenika ima primarni kljuc koji je kombinacija Ucenik-Semestar.
Kada pokusas update sa prvog na cetvrti semestar dobijas gresku posto neko od ucenika vec ima ocenu za cetvrti semestar.

EDIT: sad sam malo bolje pogledao gresku - Izgleda da SVI ucenici vec imaju ocenu za cetvrti semestar. Mislim da si pogresno postavio problem.
[ maliradoznalac @ 13.03.2009. 11:04 ] @
Izmenjao sam svih 5000 zapisa rucno

HVALA U SVAKOM SLUCAJU

inace tabela je deo baze EIS koja je zvanicna baza za evidenciju ucenika i nastavnika po skolama u Srbiji, i u toj tabeli su podaci o svim ocenama u svim tromesecjima za sve ucenike iz svih predmeta u nekoliko prethodnih godina. Tako da jeste povezana sa svim i svacim, i ima 7 polja koja su Primary key.

jos jednom, hvala svima koji su pokusali da me spasu rucnog unosa
[ mmix @ 13.03.2009. 12:03 ] @
Hehe, toliko o 3NF projektovanju baza.

Oce to kad kobolasi dizajniraju baze za drzavne tendere , bar su se suzdrzali na kompozitnom kljucu od 7 polja a pitam se dal ima ijedne relacije i provere ref integriteta u toj bazi.
Evo necu vise


[ maliradoznalac @ 14.03.2009. 07:54 ] @
@mmix
ajde sad mi molim te objasni sta je 3NF projektovanje baza?? sad kad sam zagrebao ispod povrsine ove "glupe" aplikacije, voleo bi sto vise da je sto bolje upoznam, jer mi sleduje i nadalje mucenje sa njom
tnx
[ JustinTime @ 16.03.2009. 08:01 ] @
guglaj "normaliziranje baza", odnosno "normalne forme"
[ mmix @ 16.03.2009. 09:44 ] @
http://en.wikipedia.org/wiki/3NF

mada ako nisi bar malo potkovan u bazama nece ti mnogo biti jasno iz teksta. U principu 3NF je neka zen sredina kojoj treba da stremis u projektovanju baza da bi kasnije sebi olaksao zivot u odrzavanju samih podataka i integriteta. Recimo da normalne forme odredjuju stepen normalizacije i redundantnosti podataka u bazi a da 3NF sprecava funkcionalne duplikate tako sto odvaja kljuc od non-prime podataka. Ja sam nekako 90% ubedjen da ta tabela sa kojom si imao problema ne zadovoljava 3NF i da "pati" od insert/update problema (tj da postoje dve validne instance ocenjivanja koje bi imale isti composite key). Iako je u praksi moguce napraviti 3NF tabelu sa kompozitnim kljucem od 7 polja, to niko vise ne radi sem kobolasa (u cije doba nije ni bilo NFova ), danas jednostavno izdvojis lookup-e u posebne tabele, uspostavis relacije i "nazubis" osnovnu tabelu po autoidentity kljucu (koji je odmah po definiciji minimal superkey) i vec si presao 90% puta da zadovoljis 3NF, ako ti je bas potrebna jedinstvenost kombinacije polja to radis preko constraints ili ako bas mora preko unique indexa (tada iako ta kombinacija predstavlja superkey nije minimal superkey jer ima vise od jednog polja). Da je tako radjeno ti sad ne bi imao problema sa bulk update-om.
[ maliradoznalac @ 17.03.2009. 23:31 ] @
aaa, normalizacija... znam sta je, nego nisam bas u toj prici o bazama pa me zbunjuju skracenice. hvala, ...i opet sam nesto naucio
[ rstevic @ 20.03.2009. 20:29 ] @
Inace .mdf ekstenzija je ekstenzija JET baze oju koristi MS ACCSES.
Ako imas instaliran ACCSES i otvoris taj .mdf fajl iz te aplikacije mozda kada kliknes na Tools pa relationships mozda i uspes d vidis veze izmedju tabela i referencijalne integritete.