[ srLooks @ 28.06.2011. 10:49 ] @
Radim trentno u MSSQL 2008. Imam napunjenu tabelu 'predmet' , medjutim dodao sam novu kolonu idPredmeta koja je tipa int. Potrebna mi je radi sortiranja predmeta, jer cu neke podatke prebacivati u novu tabelu. Posto imam preko 500 stavki u u tabeli predmet, a kolona idPredmeta mi je prazna, da li postoji nacin da je napunim automatski, putem neke putlje.

table izgleda ovako:

sifPred, nazivPredmeta, idPredmeta (kolona idPredmeta bi trebalo da bude redom punjenja 1,2,3,4,..,500)
-----------------------------------
MIKRE --- mikroeko. --- null
MAKR --- makroek --- null
....


Kao sto i vidite, novoformirana kolona idPredmet ima vrednost null. Da ne bih rucno unosio svih 500 cifara, trazazim nacin da to odradim nekako automatski. Ovo mi je jako bitno. Nadam se da postoji resenje.

Ne znam da li bi ti mogao da uradim sa while loop petljom? Ovako nekako:

DECLARE @idPredmeta Int
SET @idPredmeta = 1
WHILE @beginIN <501
BEGIN
SELECT @idPredmeta =idPredmeta
FROM Predmeti
WHERE idPredmeta= @idPredmeta

insert into Predmeti(idPredmeta)
values (@idPredmeta)
SET @idPredmeta =@idPredmeta + 1
END
GO


Medjutim , ovo ne funkcionise kod mene. Javlja mi da ne mogu da napunim prvu kolonu sa vrednoscu null. Ovo izgleda ne radi punjenje kolone idPredmeta koja ima vrednost null.

Hvala unapred.



[Ovu poruku je menjao srLooks dana 28.06.2011. u 12:20 GMT+1]

[Ovu poruku je menjao srLooks dana 28.06.2011. u 12:50 GMT+1]
[ vujkev @ 28.06.2011. 11:58 ] @
ako ti ne treba određeni redosled ID-a onda definiši tu koloni kako Identity

Code:

alter table Predmeti add idPredmeta int  identity(1,1)
[ srLooks @ 28.06.2011. 12:12 ] @
Bravo care. Hvala puno
[ srLooks @ 01.07.2011. 08:31 ] @
Javio mi se novi problem. U novoj napunjenoj tabeli "BKzapisnik" sam dodao kolonu "idProfesora" koja je sada prazna i ima vrednost NULL i tip podatka "int" . E sada, taj novi idProfesora bi terbalo da se puni po nekom određenom redosledu. Npr. ako je sifProfesora 1 , onda je idProfesora 3 itd i tako 100 zapisa. Onda se menja redosled brojeva pa bude sifProfesora 100, a idProfesora 101 itd... Da li bi mi neko mogao pomoci kao da prebrodim ovaj problem. Imam mnogo rekorda u tabeli nastavnici. Poce sam da punim tabelu pomocu UPDATE iskaza, međutim, to je izuzetno naporno jer imam preko 1500 rekorda u tabeli.

Tabela BKzapisi bi izgledalo ovako posle punjenja (navedene su samo dve kolone, prva koja je sifProfesora, i druga nad kojom treba da se vrsi UPDATE):
sifProfesora ----- idProfeosra (trenutna vrednost kolone idProfesora je NULL)

1 ----------------- ------- 3
2 ------------------------- 5
3 ------------------------- 6
4 ------------------------- 7
... ---- ...
101 ----------------------- 102
102 ----------------------- 103
104 ----------------------- 105


Treba da menjam vrednost NULL brojevima i redosledom koje sam naveo samo kao primer u tabeli iznad ovog teksta. Nadam se da me razumeta.

[Ovu poruku je menjao srLooks dana 01.07.2011. u 09:41 GMT+1]

[Ovu poruku je menjao srLooks dana 01.07.2011. u 10:50 GMT+1]
[ rambo @ 01.07.2011. 16:16 ] @
Lično mislim da ti je struktura tabela potpuno pogrešno definisana, tj. uopšte ne koristiš neke standardne principe pri projektovanju istih (normalizacija, referencijalni integritet i slično).

Da li ovo radiš za neki zadatak ili za neki konkretni projekat? Ako je zadatak, onda, ili je zadatak loše postavljen ili si ga ti pogrešno realizovao. Ako je konkretan projekat, onda nisi dobro definisao strukturu, tj. nisi napravio dobar projekat.

Ako to već ne znaš, savetujem ti da prvo naučiš šta je to normalizacija a zatim šta je referencijalni integritet. Nakon toga će ti biti mnogo lakše da pravilno uradiš to što si započeo.
[ nemshooo @ 01.07.2011. 18:31 ] @
Prvo, kritika ti je upotpunosti na mestu. Postavio si dobro pitanje. To je trenutno resenje BP koje nisam ja pravio. Naravno, njen model necu prikazati. Postavljanjem idProfesora ce mi sluziti samo za filtriranje i izvlacenje podataka iz postojece baze cije su tabele jako lose povezane. Naravno, pitaces me, a sta ce mi idProfesora u toj BP? Pa zbog toga sto u novoformiranom modelu (na kojem ja nisam radio) upravo postoji takvo obelezje u kojem je idProfesora primarni kljuc. Nadam se da mi necete zameriti zbog primera. U sustini, ta tabela ima 15-tak kolona, a ja sam prikazao samo dva obelezja. Dakle, ja sam samo neko ko se prikljucio projektu i koji je zaduzen za izvlacenje podataka iz postojeceg resenja koje kao sto si i sam zakljucio potpuni promasaj. Iz preko 50 tabela, koje nisu potpuno povezane i kod kojih referencijalni integritet nije dobro postavljen, treba da izvlacim podatke. Na tome radim vec neke 3 nedelje. Naravno, puno tu stvari fali, medjutim, ovo nije mesto na kojem bi trebalo da pisem o tome. I jos nesto, kao sto sam i naveo u upitu, brojevi koje sam postavio u tabeli su samo primer problema koji bi trebalo da resim. naravno, ti brojevi nisu tako grupisani.

Nadam se da imas neko resenje na moje postavljeno pitanje. Cilj mi je samo da olaksam sebi sortiranje i izvlacenje podataka i njihovo prenosenje u novu bazu.