首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql2000存储过程,请问

2012-08-02 
sql2000存储过程,请教表AID名字年龄……--------------------------1A102B11……表BIDA_id学科成绩-----------

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值如何控制。

[解决办法]

SQL code
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 学科=@学科)
[解决办法]
SQL code
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 

热点排行