【正文】
ecimal,@staffying decimal,@staffshi decimalASSELECT *FROM 工資WHERE 工資年月=@staffgongzi AND 出勤天數(shù)=@staffchuqin AND 加班工資=@staffjiaban AND應(yīng)發(fā)工資=@staffying AND實發(fā)工資=@staffshiGO(2)指定范圍的員工的信息查詢。以員工工號、部門編號為輸入?yún)?shù)返回指定員工基本信息的存儲過程,要求輸入部分員工信息查詢員工全部信息。定義一個名為stsffInfo的存儲過程,該存儲過程以員工工號(@staffNum)、部門編號(@bmNum)作為輸入?yún)?shù),存儲過程返回查詢到的結(jié)果集。satffInfo的定義代碼如下:CREATE PROCEDURE staffInfo@staffNum VARCHAR(50)=39。%39。,@bmNum VARCHAR(50)=39。%39。ASSELECT *FROM 員工,部門WHERE = AND (( LIKE @staffNum VARCHAR(50)+39。%39。) AND (部門編號 LIKE @bmNum VARCHAR(50)+39。%39。))GO (3)統(tǒng)計指定年份各部門每個月份的工資總額。以年份為輸入?yún)?shù),以總工資金額為輸出參數(shù),產(chǎn)生該年度12個月份的每部門工資統(tǒng)計的存儲過程。定義該存儲過程名為bmMonhSum,輸入?yún)?shù)為@ThisYear,實現(xiàn)代碼如下:CREATE PROCEDURE bmMonthSum@ThisYear CHAR(10)ASSELECT DATEPART(MM,工資年月) AS 員工工資月份,SUM(實發(fā)工資) AS 部門人數(shù)FROM 員工,工資,部門WHERE = AND = AND DATEPART(YYYY,工資年月)=@ThisYearGROUP BY DATEPART(MM,工資年月) 觸發(fā)器(1)關(guān)鍵操作,在工資表里添加一條新的記錄,實發(fā)工資會自動更新新的數(shù)據(jù)。定義這個觸發(fā)器名稱為insert_工資。代碼如下:create trigger insert_工資 on 工資 for insertasdeclare @i char(20)declare @bb intset @i=casewhen @bb=0001 then 39。實發(fā)工資39。when @bb=0002 then 39。實發(fā)工資39。endprint @i (2)員工新調(diào)入進(jìn)行員工新調(diào)入操作是在員工信息表中添加一條新的記錄,可以為員工信息表設(shè)計一個Insert觸發(fā)器,當(dāng)員工信息表執(zhí)行Insert操作后自動更改出部門信息表相應(yīng)記錄的數(shù)據(jù)。定義這個觸發(fā)器名稱為staff_insert。其代碼如下:CREATE TRIGGER staff_insert ON 員工FOR INSERTAS IF (SELECT COUNT(*) FROM 部門,inserted,工資 WHERE = AND =)=0ROLLBACK TRANSACTIONGO(3)員工調(diào)出進(jìn)行員工調(diào)出操作是在員工信息表中刪除該員工的記錄,可以為員工信息表設(shè)計一個Delete觸發(fā)器,當(dāng)員工信息表執(zhí)行Delete操作后,工資表、部門表中的記錄也將全部刪除。定義這個觸發(fā)器名稱為staff_delete。其實現(xiàn)代碼如下:CREATE TRIGGER staff_delete ON 員工FOR DELETEAS SELECT COUNT(*) FROM 部門,工資,deleted WHERE = AND =GO(4)員工內(nèi)部調(diào)動為員工表設(shè)計一個名為staff_update的UPDATE觸發(fā)器,當(dāng)系統(tǒng)對員工表進(jìn)行UPDATE操作后,將會自動觸發(fā)它。該觸發(fā)器將相應(yīng)記錄的部門人數(shù)、部門名稱、工資更新。下面是client_update觸發(fā)器的定義代碼;CREATE TRIGGER staff_update ON 員工FOR UPDATEAS SELECT COUNT(*) FROM updated,部門 WHERE =GO 索引為提高檢索性能,為表創(chuàng)建符合索引,其索引項為工號、姓名。CREATE INDEX 工號_姓名_indON 員工(工號,姓名)GO6 各模塊設(shè)計要點6 各模塊設(shè)計要點 登錄模塊設(shè)計 登錄模塊是所有用戶進(jìn)入工資管理系統(tǒng)的唯一途徑,除了確定用戶類型以外,還要注意用戶登錄的密碼是否與后臺數(shù)據(jù)庫的一致。用戶在登錄模塊出現(xiàn)的所有情況我都予以考慮了。在用戶登錄時根據(jù)判斷用戶的權(quán)限,在模塊中有“If power 管理員 Then = False = False”的代碼,此項決定了主界面的操作模塊。 用戶管理設(shè)計在添加用戶模塊中,我仿造了一般填寫信息時的方法設(shè)計了“確認(rèn)密碼”操作,點擊確定后,鼠標(biāo)自動停在密碼文本框