私は2つのテーブルを持っています
peson contains(personid Identity, firstname,Lastname,PlaceOfBirth,Gender)
そしてもう一つ
Education contains (Eduid identity, egreename,boardUniver,yearOfPassing,obtainedMarks, personid)
今私の問題は、各人が 1 つ以上の学位を持っていることですが、一部の人は 1 つまたは 2 つの学位を持っているため、挿入クエリをスキップするにはどうすればよいですか?
最初のテーブル
Create table person(personid int Identity(1,1) primary key, firstname nvarchar(40), Lastname nvarchar(40), PlaceOfBirth nvarchar(40), Gender nvarchar(10))
セカンドテーブル
create table Education(Eduid int identity(1,1) primary key, Degreename nvarchar(40), boardUniver nvarchar(40), yearOfPassing nvarchar(40), obtainedMarks numeric(10,2), personid int,
constraint fk_eduPerson foreign key (personid) references person(personid))
情報を保存する手順
Create procedure EmpDetails
(
@Firstname nvarchar(40), @Lastname nvarchar(40), @PlaceOfBirth nvarchar(40), @Gender nvarchar(8),
@Degreename0 int, @boardUniver0 nvarchar(40), @yearOfPassing0 nvarchar(20), @obtainedMarks0 int,
@Degreename1 int, @boardUniver1 nvarchar(40), @yearOfPassing1 nvarchar(20), @obtainedMarks1 int,
@Degreename2 int, @boardUniver2 nvarchar(40), @yearOfPassing2 nvarchar(20), @obtainedMarks2 int,
)
AS BEGIN
declare @personid int
INSERT INTO person(firstname,Lastname,PlaceOfBirth,Gender) values(@firstname,@Lastname,@PlaceOfBirth,@Gender)
SELECT @personid=@@IDENTITY
if(@Degreename0 !=NULL)
BEGIN
INSERT INTO Education(Degreename,boardUniver,yearOfPassing,obtainedMarks, personid) values (@Degreename0,@boardUniver0,@yearOfPassing0,@obtainedMarks0, @personid)
END
IF(@Degreename1 !=null)
BEGIN
INSERT INTO Education(Degreename,boardUniver,yearOfPassing,obtainedMarks, personid) values (@Degreename1,@boardUniver1,@yearOfPassing1,@obtainedMarks1, @personid)
END
IF(@Degreename2!=null)
BEGIN
INSERT INTO Education(Degreename,boardUniver,yearOfPassing,obtainedMarks, personid) values (@Degreename2,@boardUniver2,@yearOfPassing2,@obtainedMarks2,@personid)
END
END
これは機能していません..これはすべての行を空に挿入します..これを行う他の解決策はありますか? 他に提案があれば教えてください..ありがとう