【正文】
s_trigger on Customers for delete asbegin if user=39。dbo39。 mitelse begin print 39。僅允許dbo用戶可以刪除Customers表中的數據!!39。 rollback transaction endEnd僅允許數據庫管理員可以修改Customers表中的數據create trigger Customers_trigger2 on Customers for update asbegin if user=39。dbo39。 mitelse begin print 39。僅允許dbo用戶可以修改Customers表中的數據!!39。 rollback transaction endend在Orders上創(chuàng)建觸發(fā)器,插入數據時要先檢查Customers表和Employees表里面是否存在和Orders表同值的訂單編號、員工編號與客戶編號。create trigger Orders_trigger on Orders for insert asif exists(select * from Orders where OrderID not in(select OrderID from Orders) or (EmployeeID not in (select EmployeeID from Employees) and CustomerID not in(select CustomerID from Customers))) beginprint 39。 Orders表中不存在訂單編號,或者Customers表中不存在客戶編號和Employees表中不存在員工編號,不能插入!!39。 rollback transaction end測試:插入一條員工編號、顧客編號不存在于相應的表中的記錄insert into Orders values(39。A001200639。,39。31100903030639。,39。31100856230639。,39。1000039。,20,39。200922439。)插入一條客戶編號、員工編號都存在于相應的表中的記錄insert intoOrders values(39。 A0012006 39。,39。31100903030539。39。,39。31100856230539。,39。1000039。,20,39。200922439。)未插入之前的數據如下插入之后的數據如下由上圖對比可知插入成功。、定義存儲過程create procedure Customer_search (@C_ID char(12))asselect * from Customerswhere CustomerID=@C_ID調用該存儲過程declare @C_ID char (12)exec Customer_search @C_ID= 39。31100903030139。 定義員工表上的存儲過程create procedure Employee_search (@E_ID char(12))asselect * from Employeeswhere EmployeeID=@E_ID調用該存儲過程declare @E_ID char (12)exec Employee_search @E_ID= 39。 31100856230139。六、設計小結通過這兩周的課程設計,我對《數據庫系統(tǒng)與應用》這門課程有了更深的理解和認識。為了做好此次課程設計,我綜合運用了老師上課所講的大部分的內容,并且查閱課很多有關數據庫系統(tǒng)設計的資料,在這過程中,我也進一步鍛煉了自己的自學能力和對新事物的把控能力。就我的課程設計而言,里面加入了大量的圖表和解釋性文字,對要處理的對象和系統(tǒng)的要求都有較明確的闡述。在對該系統(tǒng)進行測試時,實現了各個表上的各種查詢和修改、建立了相關視圖、儲存過程、觸發(fā)器等,功能相對比較完善。建立觸發(fā)器之后,一些操作必須是有相關權限的人員才可以執(zhí)行,對于一些不法的操作,能自動阻止,增加了系統(tǒng)的安全性。不過,相比較于真正的客戶信息管理系統(tǒng)而言,此課程設計還不太細致和完善,而且有些SQL語句也不夠嚴謹,仍需不斷地修正和改進。25 頁 共 25