SQL - wstawianie danych

0

Cześć. Ćwicze SQLa i znalazłam sobie zestaw zadań na necie, ale nie umiem sobie poradzić z dwoma.

1 Stworzyć tabelę prac, tak aby pole nrp automatycznie otrzymywało wartość unikalną zaczynając od wartości 100.

CREATE TABLE prac(nrp int identity(100,1), nazw char(40)) 

Zmodyfikować skrypt wpisujący 5000 rekordów aby działał dla tak zmienionej tabeli i uruchomić go dla tabeli prac.

declare @j int
set @j = 1
while(@j<5000)
begin
insert into unik(nrp,nazw) values(@j,'abcdefgh')
set @j = @j+1
end 

Bez przerwy wyskakują mi błędy.

  1. Stworzyć tabelę dzieci
CREATE TABLE dzieci(nrdz int identity, nrp int, imie char(40))

Wpisać do tabeli prac rekord dla pracownika MISIURA wpisując jednocześnie (w tym samym skrypcie) do tabeli dzieci jego dwójkę dzieci o imionach JAŚ i MAŁGOSIA.

W tym drugim rozumiem że musze dodać klucze obce w jednej i drugiej tabeli tak?

1

primo - deklarujesz pole IDENTITY(100,1) czyli mające numerować się od 100 a w pętli próbujesz tam wepchnąć wartości od 1
secundo - pola z własnością IDENTITY numerują się automagicznie
więc insert w pętli powinien wyglądać tak:

INSERT INTO prac(nazw) VALUES('dupa')
DECLARE @id int
insert into prac(nazw) values('MISIURA')
set @id = SCOPE_IDENTITY()
insert into dzieci(nrp, imie) values(@id,'JAŚ')
insert into dzieci(nrp, imie) values(@id,'MAŁGOSIA')
0

Dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1