create TRIGGER [dbo].[TRIGGER_chuan_athlete_grade] ON [dbo].[传统比赛运动员] 
for UPDATE
AS
if(update(性别) or update(年龄级别))
begin
declare @运动员名 varchar(50);
declare @所属队 varchar(50);
declare @年龄级别 varchar(50);
declare @性别 varchar(50);
declare @所报项目 varchar(50);
declare @最大流水号 int;
select @运动员名=运动员名 from inserted
select @所属队=所属队 from inserted
select @年龄级别=年龄级别 from inserted
select @性别=性别 from inserted
select @所报项目=(select top 1 所报项目 from 传统比赛运动员,传统比赛成绩
where (传统比赛运动员.运动员名=@运动员名) and (传统比赛运动员.所属队=@所属队)
and (传统比赛运动员.所属队=传统比赛成绩.所属队) and 
(传统比赛运动员.运动员名=传统比赛成绩.运动员名)
)
select @最大流水号=0
print(@性别+'    '+@年龄级别+'        '+@所报项目)
print(@最大流水号)
select @最大流水号=(
SELECT top 1 流水号
FROM 传统比赛运动员,传统比赛成绩
WHERE 
(传统比赛运动员.所属队=传统比赛成绩.所属队) and 
(传统比赛运动员.运动员名=传统比赛成绩.运动员名) and 
(年龄级别=@年龄级别) AND (性别= @性别) AND (所报项目 =@所报项目) and (流水号<>'') AND (流水号<>0)
order by 流水号 desc
)
print(@性别+@年龄级别+@所报项目)
print(@最大流水号)
UPDATE 传统比赛成绩
SET 流水号 = @最大流水号+1
WHERE (运动员名 = @运动员名) AND (所属队 = @所属队) AND (所报项目 = @所报项目)
end24行    获得最大流水号时并没有获得更新后组别比赛项目的最大流水号,而是获得旧的组别的比赛项目的最大流水号
为什么。。
急求