if exists (select * from sysobjects where name='avg_wage')
drop procedure avg_wage
GO
create procedure avg_wage
@PWage int,
@AWage int,
@total int
as 
while (1=1)
begin
if ((select avg(wage) from ProWage)<=@PWage)
update ProWage set @total=@total+@AWage,Wage=Wage+@AWage
else
break
end
print'一共加薪:'+convert(varchar,@total)+'元'
print'加薪后的程序员工资列表:'这里的as 
while (1=1)
begin
else
break
是什么意思

解决方案 »

  1.   

    while作条件判断啊 当满足条件的时候 执行IF下面的 否则执行ELSE的BREAK跳出WHILE子句。
      

  2.   

    一个循环的应用而已,满足if条件就一直更新表里的wage,跳过if时循环结束。
      

  3.   

    if ((select avg(wage) from ProWage)<=@PWage)--平均wage小於等於@PWage時
    update ProWage set @total=@total+@AWage,Wage=Wage+@AWage --更新Wage++@AWage ,@total+@AWage
    循環直到平均wage大於@PWage時退出
      

  4.   

    一个WHILE循环,给所有程序员加工资,然后计算增加后的平均工资是否小于等于事先设置的一个值,同时将每次增加的值保存到另一个变量,然后继续判断增加后的平均工资是否小于等于事先设置的一个值,同时将每次增加的值保存到另一个变量,一直到不满足条件就退出这个循环。
      

  5.   

    while(1=1) 表示循环,在没有遇到break时一直循环
    break 跳出循环begin
    if ((select avg(wage) from ProWage)<=@PWage)
    update ProWage set @total=@total+@AWage,Wage=Wage+@AWage
    else
    break
    end当不满足((select avg(wage) from ProWage)<=@PWage)条件时,执行break,跳出循环