--Jika database programmerPay ada, hapuslah
jika ada (pilih * dari sysdatabases di mana nama='programmerPay')
jatuhkan pemrogram basis dataPay
pergi
--Buat pemrogram basis data, Bayar
membuat pemrogram basis dataPay
pada primer
(
nama ='programmerPay_data',
nama file='D:programmerPayprogrammerPay_data.mdf',
ukuran maksimal=3mb,
pertumbuhan file=15%
)
masuk
(
nama ='programmerPay_log',
nama file='D:programmerPayprogrammerPay_log.ldf',
ukuran maksimal=1mb,
pertumbuhan file=15%
)
pergi
gunakan programmerPay
pergi
--Buat prowage tabel
membuat tabel prowage
(
id int identitas(1,1) bukan nol,--kolom identitas kunci utama
Pname char(10) bukan null,--nama programmer
upah int bukan nol--gaji programmer
)
pergi
--Tambahkan batasan kunci utama ke bidang id prowage tabel
mengubah prowage tabel
tambahkan batasan kunci utama PK_id (id)
--Masukkan data uji
masukkan ke prowage (pname,wage)
nilai ('Zhang San',5000)
masukkan ke prowage (pname,wage)
nilai ('李思',1200)
masukkan ke prowage (pname,wage)
nilai ('Februari',1700)
masukkan ke prowage (pname,wage)
nilai ('langit biru',5700)
masukkan ke prowage (pname,wage)
nilai ('sinar matahari',8700)
masukkan ke prowage (pname,wage)
nilai ('Cina',1100)
masukkan ke prowage (pname,wage)
nilai ('sekali disembunyikan',1300)
masukkan ke prowage (pname,wage)
nilai ('ruo',1200)
masukkan ke prowage (pname,wage)
nilai ('chend',1400)
--Jika prosedur tersimpan proc_addWage1 ada, hapus prosedur tersebut
jika ada (pilih * dari sysobjects di mana nama='proc_addWage1')
hapus prosedur proc_addWage1
pergi
--Buat prosedur tersimpan proc_addWage1
buat prosedur proc_addWage1
sebagai
tetapkan tidak ada hitungan
nyatakan @firstwage int
pilih @firstwage=sum(upah) dari prowage
sementara (1=1)
mulai
deklarasikan @notpass int, @count int--tentukan dua variabel: jumlah orang yang belum mencapai 2200 dan jumlah orang
pilih @notpass=count(*) dari prowage dimana upah<2200
pilih @count =count(*) dari prowage
jika(@notpass*2>@hitungan)
perbarui upah yang ditetapkan upah=upah+100
kalau tidak
merusak
akhir
nyatakan @endwage int
pilih @endwage=sum(upah) dari prowage
print'Total kenaikan gaji'+convert(varchar(5),@endwage-@firstwage)
print 'Daftar gaji programmer setelah kenaikan gaji:'
pilih ID, Nama P, upah dari prowage
pergi
--Jika prosedur tersimpan proc_addWage2 ada, hapus prosedur tersebut
jika ada (pilih * dari sysobjects di mana nama='proc_addWage2')
hapus prosedur proc_addWage2
pergi
--Buat prosedur tersimpan proc_addWage2
buat prosedur proc_addWage2
sebagai
tetapkan tidak ada hitungan
sementara(1=1)
mulai
deklarasikan @avgwage int --Tentukan gaji rata-rata variabel
pilih @avgwage =avg(wage) dari prowage
jika(@avgwage<4500)
perbarui upah yang ditetapkan upah=upah+200
kalau tidak
merusak
akhir
pergi
exec proc_addWage1 -- memanggil prosedur tersimpan proc_addWage1
exec proc_addwage2 -- memanggil prosedur tersimpan proc_addwage2
Artikel ini berasal dari blog CSDN. Harap sebutkan sumbernya saat mencetak ulang: http://blog.csdn.net/yyoanlp/archive/2009/12/21/5047942.aspx
-