【正文】
declare @count int select @count=count(*) from 產(chǎn)品 ,倉(cāng)庫(kù) where = and =39。S00139。 and =2print @count l 運(yùn)用觸發(fā)器產(chǎn)品入庫(kù)+1,則庫(kù)存容量+1(觸發(fā)器)create trigger tri_產(chǎn)品入庫(kù) on 產(chǎn)品 for insert as update 倉(cāng)庫(kù)set 庫(kù)存容量 = 庫(kù)存容量 + (select COUNT(*) from INSERTED where = )。執(zhí)行語(yǔ)句:exec proc_產(chǎn)品 ‘P007’,‘蠶豆’,‘周展’,2,3,‘C001’,‘S001’; exec proc_產(chǎn)品 ‘P006’,‘花生’,‘周展’,5,2,‘C002’,‘S003’;產(chǎn)品入庫(kù)前:產(chǎn)品入庫(kù)后:產(chǎn)品出庫(kù)1,庫(kù)存容量1(觸發(fā)器)create trigger tri_產(chǎn)品出庫(kù) on 產(chǎn)品 for delete As update 倉(cāng)庫(kù)set 庫(kù)存容量 = 庫(kù)存容量(select COUNT(*) from deleted where = )。執(zhí)行語(yǔ)句:exec proc_產(chǎn)品出庫(kù) 39。P00139。檢驗(yàn)產(chǎn)品出庫(kù)前:(產(chǎn)品、倉(cāng)庫(kù)情況)產(chǎn)品出庫(kù)后:(產(chǎn)品、倉(cāng)庫(kù)情況) 零件入庫(kù)+1,則庫(kù)存容量+1(觸發(fā)器)create trigger tri_零件入庫(kù)on 零件 for insert as update 倉(cāng)庫(kù)set 庫(kù)存容量 = 庫(kù)存容量 + (select COUNT(*) from INSERTED where = )。執(zhí)行語(yǔ)句:exec proc_零件 39。L00139。,39。塑料袋39。,3,39。S00139。 exec proc_零件 39。L00239。,39。包裝盒39。,2,39。S00239。零件入庫(kù)前:(零件、倉(cāng)庫(kù)情況)零件入庫(kù)后:(零件、倉(cāng)庫(kù)情況) 一個(gè)零件出庫(kù),零件庫(kù)存容量1(觸發(fā)器)create trigger tri_零件出庫(kù)on 零件 for deleteasupdate 倉(cāng)庫(kù)set 庫(kù)存容量 = 庫(kù)存容量 (select COUNT(*) from deleted where = );執(zhí)行語(yǔ)句:exec proc_零件出庫(kù) 39。L00139。檢驗(yàn)零件出庫(kù)前:(零件、倉(cāng)庫(kù)情況)零件出庫(kù)后:(零件、倉(cāng)庫(kù)情況) 安全設(shè)計(jì)階段l 給工廠數(shù)據(jù)庫(kù)管理系統(tǒng)設(shè)置用戶(hù)權(quán)限:1) 廠長(zhǎng)是整個(gè)數(shù)據(jù)庫(kù)的管理員,對(duì)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)具有增加,刪除,修改,查詢(xún)。2) 車(chē)間主任可以管理工人,對(duì)工人可以進(jìn)行修改,增加,刪除,查詢(xún)。3) 產(chǎn)品經(jīng)理可以管理產(chǎn)品,對(duì)產(chǎn)品可以進(jìn)行修改,增加,刪除,查詢(xún)。4) 倉(cāng)庫(kù)主任可以管理倉(cāng)庫(kù),對(duì)產(chǎn)品跟零件可以進(jìn)行修改,增加,刪除,查詢(xún)。l 用戶(hù)身份認(rèn)證創(chuàng)建登錄名,添加角色exec sp_addlogin 39。panqiufang39。,39。11439739。,39。factory39。exec sp_addsrvrolemember 39。panqiufang39。,39。sysadmin39。在數(shù)據(jù)庫(kù)中添加新用戶(hù)use factory exec sp_grantdbaccess 39。panqiufang39。,39。qiuqiu39。角色可以訪問(wèn)的表與列操作權(quán)限廠長(zhǎng)工廠增,刪,改,查車(chē)間增,刪,改,查工人增,刪,改,查產(chǎn)品增,刪,改,查零件增,刪,改,查倉(cāng)庫(kù)增,刪,改,查生產(chǎn)增,刪,改,查產(chǎn)品_零件增,刪,改,查車(chē)間主任車(chē)間增,刪,改,查工人增,刪,改,查工廠查產(chǎn)品經(jīng)理車(chē)間查產(chǎn)品增,刪,改,查零件增,刪,改,查工廠查生產(chǎn)查倉(cāng)庫(kù)查產(chǎn)品_零件查倉(cāng)庫(kù)主任倉(cāng)庫(kù)查工廠查產(chǎn)品增,刪,改,查零件增,刪,改,查車(chē)間查l 創(chuàng)建角色并授予相應(yīng)的權(quán)限:創(chuàng)建廠長(zhǎng)角色create role 廠長(zhǎng)授予權(quán)限grant select,delete,update,insert on 工廠 to 廠長(zhǎng)。grant select,delete,update,insert on 車(chē)間 to 廠長(zhǎng)。grant select,delete,update,insert on 產(chǎn)品 to 廠長(zhǎng)。grant select,delete,update,insert on 零件 to 廠長(zhǎng)。grant select,delete,update,insert on 工人 to 廠長(zhǎng)。grant select,delete,update,insert on 倉(cāng)庫(kù) to 廠長(zhǎng)。grant select,delete,update,insert on 生產(chǎn) to 廠長(zhǎng)。grant select,delete,update,insert on 產(chǎn)品_零件 to 廠長(zhǎng)。創(chuàng)建車(chē)間主任角色create role 車(chē)間主任授予權(quán)限grant select,delete,update,insert on 車(chē)間 to 車(chē)間主任。grant select,delete,update,insert on 工人 to 車(chē)間主任。grant select on 工廠 to 車(chē)間主任。授予查看視圖權(quán)限grant select on v_renshu to 車(chē)間主任。grant select on v_worker to 車(chē)間主任。grant select on count_員工 to 車(chē)間主任。創(chuàng)建產(chǎn)品經(jīng)理角色create role 產(chǎn)品經(jīng)理授予權(quán)限grant select on 車(chē)間 to 產(chǎn)品經(jīng)理。grant select,delete,update,insert on 產(chǎn)品 to 產(chǎn)品經(jīng)理。grant select,delete,update,insert on 零件 to 產(chǎn)品經(jīng)理。grant select on 工廠 to 產(chǎn)品經(jīng)理。grant select on 生產(chǎn) to 產(chǎn)品經(jīng)理。grant select on 倉(cāng)庫(kù) to 產(chǎn)品經(jīng)理。grant select on 產(chǎn)品_零件 to 產(chǎn)品經(jīng)理。授予查看視圖權(quán)限grant select on v_shop to 產(chǎn)品經(jīng)理。grant select on v_CNO to 產(chǎn)品經(jīng)理。創(chuàng)建倉(cāng)庫(kù)主任角色create role 倉(cāng)庫(kù)主任授予權(quán)限grant select on 倉(cāng)庫(kù) to 倉(cāng)庫(kù)主任。grant select on 工廠 to 倉(cāng)庫(kù)主任。grant select,delete,update,insert on 產(chǎn)品 to 倉(cāng)庫(kù)主任。grant select,delete,update,insert on 零件 to 倉(cāng)庫(kù)主任。grant select on 車(chē)間 to 倉(cāng)庫(kù)主任。授予查看視圖權(quán)限grant select on v_store to 倉(cāng)庫(kù)主任。grant select on V_use to 倉(cāng)庫(kù)主任。grant select on v_produce to 倉(cāng)庫(kù)主任。 總結(jié)關(guān)于數(shù)據(jù)庫(kù)課程設(shè)計(jì),總的來(lái)說(shuō),受益匪淺。此次課程設(shè)計(jì)主要是通過(guò)運(yùn)用所學(xué)的數(shù)據(jù)庫(kù)系統(tǒng)理論這門(mén)課程的相關(guān)知識(shí)設(shè)計(jì)工廠數(shù)據(jù)庫(kù)管理系統(tǒng),模擬工廠的生產(chǎn)過(guò)程。在這些天的課程設(shè)計(jì)中,我覺(jué)得自己還是學(xué)到了很多東西,包括建表、建存儲(chǔ)過(guò)程、建觸發(fā)器、查詢(xún)語(yǔ)句、插入數(shù)據(jù)、更新數(shù)據(jù)以及數(shù)據(jù)庫(kù)安全性等內(nèi)容都有了更深層次的理解。在這次課程設(shè)計(jì)過(guò)程中,我對(duì)建立基本表、視圖、存儲(chǔ)過(guò)程等,都比以前更加的熟練。在解決課程設(shè)計(jì)遇到的各種問(wèn)題的過(guò)程中,學(xué)到了很多新的知識(shí)。比如在刪除和更新數(shù)據(jù)時(shí),由于外鍵約束的存在,經(jīng)常會(huì)出現(xiàn)錯(cuò)誤,這就要注意各個(gè)表導(dǎo)入的順序問(wèn)題。一般是先導(dǎo)入主鍵表,后導(dǎo)入外鍵表,這樣可以避免很多的錯(cuò)誤。另外我還充分體會(huì)了從事軟件開(kāi)發(fā)工作需要特別嚴(yán)謹(jǐn)認(rèn)真的態(tài)度和作風(fēng),一點(diǎn)都馬虎不得。每一個(gè)細(xì)微的細(xì)節(jié)都必須十分的注意,如果不認(rèn)真思考決策,就會(huì)出現(xiàn)或大或小的錯(cuò)誤,如果早期的錯(cuò)誤隱藏下來(lái),對(duì)后面的工作影響就會(huì)很大,甚至有時(shí)要推倒很多前面做的工作重來(lái)。SQL Sever數(shù)據(jù)庫(kù)課程設(shè)計(jì)主要可分兩大塊,一塊是開(kāi)發(fā),一塊是管理。開(kāi)發(fā)主要是編寫(xiě)存儲(chǔ)過(guò)程、觸發(fā)器等,有些類(lèi)似于程序員,開(kāi)發(fā)還需要有較強(qiáng)的邏輯思維和創(chuàng)造能力;管理則需要對(duì)SQL Sever數(shù)據(jù)庫(kù)的原理有深刻的認(rèn)識(shí),有全局操縱的能力和緊密的思維,責(zé)任較大,因?yàn)橐粋€(gè)小的失誤就會(huì)弄掉整個(gè)數(shù)據(jù)庫(kù),相對(duì)前者來(lái)說(shuō),后者更看重經(jīng)驗(yàn)。數(shù)據(jù)庫(kù)的課程設(shè)計(jì)學(xué)習(xí)使我對(duì)數(shù)據(jù)庫(kù)的有了新的進(jìn)步,順利完成了整個(gè)工廠數(shù)據(jù)庫(kù)管理系統(tǒng)的設(shè)計(jì),收獲頗多。同時(shí),也便于我在以后學(xué)習(xí)或認(rèn)識(shí)更多的內(nèi)容能有新的方法和思維,也能更加有效和快速的去消化吸收新的東西。希望在今后中,SQL Server能給我更多幫助。最后,還要感謝數(shù)據(jù)庫(kù)老師對(duì)我的幫助,給我提供了許多寶貴的意見(jiàn)。