存储过程练习一

题目

程序员工资表:ProWage

字段名称

数据类型

说明

ID

int

自动编号,主键

PName

Char(10)

程序员姓名

Wage

int

工资

 创建存储过程,查询程序员平均工资在4500元,如果不到则每个程序员每次加200元,至到所有程序员平均工资达到4500元

 

第一步  建表

--建数据表--
USE Wage
GO
CREATE TABLE ProWage  --程序员工资表
(
  ID int identity(1,1) primary key--工资编号
  PName  CHAR(10) NOT NULL ,     --程序员姓名
  Wage  int NOT NULL    --工资
)
GO
第二步  插入数据
--插入数据--
INSERT INTO ProWage(PName,Wage)VALUES('青鸟',1900)
INSERT INTO ProWage(PName,Wage)VALUES('张三',1200)
INSERT INTO ProWage(PName,Wage)VALUES('李四',1800)
INSERT INTO ProWage(PName,Wage)VALUES('二月',3500)
INSERT INTO ProWage(PName,Wage)VALUES('蓝天',2780)
第三步  创建存储过程

CREATE PROCEDURE PR_addsalary  

@AVGWAGE INT     /*声明一个输入参数*/

AS

WHILE((SELECT AVG(wage)FROM ProWage)<@AVGWAGE)    /*while 循环语句  条件:工资平均值小于输入参数的话执行下面语句 */

BEGIN

 UPDATE dbo.ProWage SET Wage=Wage+200         /*每人工资加200*/

 IF ((SELECT AVG(wage)FROM ProWage)>@AVGWAGE)    /*循环结束条件 如果平均值大于输入参数跳出循环*/

BREAK

ELSE

CONTINUE

END

print'加薪后的程序员工资列表:'

 select * from ProWage

 
posted @ 2017-11-09 10:41  CG_Technology  阅读(284)  评论(0编辑  收藏  举报