sql2000存储过程,请教
表A
ID 名字 年龄 ……
--------------------------
1 A 10
2 B 11
……
表B
ID A_id 学科 成绩
-----------------------------
1 1 语文 100
2 1 数学 110
3 2 语文 98
……
如何用存储过程插入某同学C的信息,其中需要判断C同学是否已经记录A表,如果不存在,插入A表,插入成绩B表;存在,更新A同学信息,查询B表是否存在学科成绩,不存则插入。 其中A_id值如何控制。
[解决办法]
if not exists(select 1 from a where 名字='c')insert into a select 名字,年龄,...insert into b select a_id,.成绩 elseupdate a set ...insert into b select .. where not exists(select 1 from b where 成绩=@成绩 and 学科=@学科)
[解决办法]
declare @CId intset @CId=0select @CId=ID from A where [名字]='C'if (@CId>0)begin update A set ... where [名字]='C' if not exists (select top (1) * from B where A_id=@CId and [学科]='语文') begin insert into B (A_id,[学科],[成绩]) values (@CId,'语文',85) endendelsebegin insert into A ([名字],[年龄]) values ('C',21) set @CId =SCOPE_IDENTITY() insert into B (A_id,[学科],[成绩]) values (@CId,'语文',85)end