--Si la base de datos programadorPay existe, elimínela.
si existe (seleccione * de sysdatabases donde nombre = 'programmerPay')
soltar programador de base de datosPagar
ir
--Crear base de datos programadorPagar
crear base de datos programadorPagar
en primaria
(
nombre = 'programadorPay_data',
nombre de archivo = 'D:programmerPayprogrammerPay_data.mdf',
tamaño máximo = 3 MB,
crecimiento de archivos = 15%
)
acceder
(
nombre = 'programadorPay_log',
nombre de archivo = 'D:programmerPayprogrammerPay_log.ldf',
tamaño máximo = 1 MB,
crecimiento de archivos = 15%
)
ir
usar programadorPagar
ir
--Crear clasificación de tabla
crear tabla prowage
(
id int identidad (1,1) no nulo, - columna de identidad de clave principal
Pname char(10) no nulo,--nombre del programador
salario int no nulo - salario del programador
)
ir
--Agregar restricciones de clave principal al campo de identificación de prowage de la tabla
alterar la proa de la mesa
agregar restricción PK_id clave primaria (id)
--Insertar datos de prueba
insertar en prowage (pname,salario)
valores ('Zhang San',5000)
insertar en prowage (pname,salario)
valores ('李思',1200)
insertar en prowage (pname,salario)
valores('febrero',1700)
insertar en prowage (pname,salario)
valores('cielo azul',5700)
insertar en prowage (pname,salario)
valores ('sol',8700)
insertar en prowage (pname,salario)
valores('China',1100)
insertar en prowage (pname,salario)
valores ('una vez oculto',1300)
insertar en prowage (pname,salario)
valores('ruo',1200)
insertar en prowage (pname,salario)
valores('chend',1400)
--Si el procedimiento almacenado proc_addWage1 existe, elimínelo
si existe (seleccione * de sysobjects donde nombre='proc_addWage1')
procedimiento de eliminación proc_addWage1
ir
--Crear procedimiento almacenado proc_addWage1
crear procedimiento proc_addWage1
como
establecer no contar en
declarar @firstwage int
seleccione @firstwage=sum(wage) de prowage
mientras (1=1)
comenzar
declara @notpass int, @count int: define dos variables: el número de personas que no han llegado a 2200 y el número total de personas
seleccione @notpass=count(*) de prowage donde salario<2200
seleccione @count =count(*) de prowage
si(@notpass*2>@count)
actualizar prowage establecer salario=salario+100
demás
romper
fin
declarar @endwage int
seleccione @endwage=sum(salario) de prowage
print'Aumento salarial total'+convert(varchar(5),@endwage-@firstwage)
imprimir 'Lista de salarios de programadores después del aumento salarial:'
seleccione ID, Pname, salario de prowage
ir
--Si el procedimiento almacenado proc_addWage2 existe, elimínelo
si existe (seleccione * de sysobjects donde nombre='proc_addWage2')
procedimiento de eliminación proc_addWage2
ir
--Crear procedimiento almacenado proc_addWage2
crear procedimiento proc_addWage2
como
establecer no contar en
mientras(1=1)
comenzar
declarar @avgwage int --Definir salario promedio variable
seleccione @avgwage =avg(wage) de prowage
si (@avgwage<4500)
actualizar prowage establecer salario=salario+200
demás
romper
fin
ir
exec proc_addWage1: llama al procedimiento almacenado proc_addWage1
exec proc_addwage2 - llama al procedimiento almacenado proc_addwage2
Este artículo proviene del blog de CSDN. Indique la fuente al reimprimir: http://blog.csdn.net/yyoanlp/archive/2009/12/21/5047942.aspx .
-