




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、長 沙 理 工 大 學(xué) 計算機與通信工程學(xué)院 實 驗 報 告 課程名稱 數(shù)據(jù)庫原理與技術(shù) 實驗項目名稱 數(shù)據(jù)完整性 班級 學(xué)號 姓名 實驗日期 年 月 日 指導(dǎo)教師簽字 一實驗?zāi)康?(1) 掌握SQL Server管理平臺和Transact-SQL語句(Create table、alter table)定義和刪除約束的方法,并了解約束的類型。 (2) 掌握通過SQL Server管理平臺和Transact-SQL語句Create trigger創(chuàng)建觸發(fā)器的方法和步驟; (3) 掌握引發(fā)觸發(fā)器的方法; (4) 掌握使用SQL Server管理平臺或Transact-SQL語句修改和刪除觸發(fā)器;
2、二實驗平臺 操作系統(tǒng):Windows xp DBMS:SQL Server 2005 三實驗內(nèi)容和步驟 1在studentsdb數(shù)據(jù)庫中用CREATE TABLE語句創(chuàng)建表stu_con,并同時創(chuàng)建約束。 (1)創(chuàng)建表的同時創(chuàng)建約束。表結(jié)構(gòu)如圖1所示。 圖1 要創(chuàng)建的表的結(jié)構(gòu) 約束要求如下: 將學(xué)號設(shè)置為主鍵(PRIMARY KEY),主鍵名為pk_sid。 為姓名添加唯一約束(UNIQUE),約束名為uk_name。 為性別添加默認(rèn)約束(DEFAULT),默認(rèn)名稱為df_sex,其值為“男”。 為出生日期添加屬性值約束(CHECK),約束名為ck_bday,其檢查條件為:出生日期1988-1
3、-1。 (2)使用ALTER TABLE語句的DROP CONSTRAINT參數(shù)項在查詢設(shè)計器中刪除為stu_con表所建的約束。 2為studentsdb數(shù)據(jù)庫的grade表添加外鍵約束(FOREIGN KEY),要求將“學(xué)號”設(shè)置為外鍵,參照表為student_info,外鍵名稱為fk_sid。 3為grade表建立一個名為insert_g_tr 的INSERT觸發(fā)器,當(dāng)用戶向grade表中插入記錄時,如果插入的是在curriculum表中沒有的課程編號,則提示用戶不能插入記錄,否則提示記錄插入成功。在進行插入測試時,分別輸入以下數(shù)據(jù): 學(xué)號 課程編號 分?jǐn)?shù) 0004 0003 76 00
4、05 0007 69 觀察插入數(shù)據(jù)時的運行情況,說明為什么? 變量定義:DECLARE fkc_id varchar(8) 提示記錄插入成功:PRINT 記錄插入成功 提示不能插入記錄:RAISERROR(無此課程,不能插入記錄,16,1) 4為curriculum表創(chuàng)建一個名為del_c_tr的DELETE觸發(fā)器,該觸發(fā)器的作用是禁止刪除curriculum表中的記錄。 CREATE TRIGGER del_c_tr ON curriculum Instead of delete AS RAISERROR(禁止刪除curriculum表中的記錄) ROLLBACK TRANSACTION 5
5、為student_info表創(chuàng)建一個名為update_s_tr的UPDATE觸發(fā)器,該觸發(fā)器的作用是禁止更新student_info表中的“姓名”字段的內(nèi)容。 CREATE TIGGER update_s_tr ON student_info FOR UPDATE AS DECLARE name_old varchar(8) DECLARE name_new varchar(8) SET name_old=(SELECT 姓名 FROM Deleted) SET name_new=(SELECT 姓名 FROM Inserted) IF (name_old!=name_new) BEGIN R
6、AISERROR(不能修改姓名,16,1) END 6使用Transact-SQL語句DROP TRIGGER刪除update_s_tr觸發(fā)器。 DROP TRIGGER student_info.uodate_s_tr 7為student_info表建立刪除觸發(fā)器del_s_tr,要求當(dāng)student_info表的記錄被刪除后,grade表中相應(yīng)的記錄也能自動刪除。 CREATE TIGGER del_s_tr ON student_info FOR DELETE AS DECLARE stu_no varchar(8) SET stu_no=(SELECT 學(xué)號 FROM Deleted)
7、 DELETE * FROM grade WHERE 學(xué)號=stu_no 四命令(代碼)清單 use studentsdb; create table stu_con( 學(xué)號 char(4) constraint pk_sid primary key, 姓名 char(8) constraint uk_name unique, 性別 char(2) constraint de_sex default 男 , 出生日期 char(8) constraint ck_bday check (出生日期 1988-1-1), 家庭住址 varchar(50) ) alter table stu_con
8、drop constraint pk_sid,uk_name,df,_sex,ck_bday alter table student_info alter column 學(xué)號 char(4) not null alter table student_info add primary key(學(xué)號); alter table grade add constraint fk_sid foreign key(學(xué)號) references student_info(學(xué)號) CREATE TRIGGER insert_g_tr ON dbo.grade FOR INSERT AS DECLARE Err
9、No int, ErrMsg varchar(255) if exists (select 課程編號 from inserted where 課程編號= ) begin select errno = 33333, errmsg = 課程編號不可為空 ! goto error end RETURN error: raiserror errno errmsg CREATE TRIGGER del_c_tr ON curriculum instead of delete AS RAISERROR(禁止刪除curriculum表中的記錄,16,1) ROLLBACK TRANSACTION CREATE TRIGGER update_s_tr ON student_info FOR UPDATE AS DECLARE name_old varchar(8) DECLARE name_new varchar(8) SET name_old=(SELECT 姓名 FROM Deleted) SET name_new=(SELECT 姓名 FROM Inserted) IF (name_old!=name_new) BEGIN RAISERROR(不能修改姓名,16,1) END drop TRIGGER update_s_tr ON student_info C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國容重秤行業(yè)發(fā)展預(yù)測及投資策略報告
- 2025年高密度斜紋彈力棉布項目可行性研究報告
- 2025年珍珠菇項目可行性研究報告
- 2025年珍珠奶茶封口機項目可行性研究報告
- 環(huán)保產(chǎn)業(yè)的未來機遇與挑戰(zhàn)分析
- 2025年有毒有害氣體檢測儀項目可行性研究報告
- 25年公司員工安全培訓(xùn)考試試題及參考答案(模擬題)
- 國際新城初春廣告方案形象部分
- 2025年攝影燈架項目可行性研究報告
- 禮文化視域下當(dāng)代成人禮服飾創(chuàng)新設(shè)計研究
- 文件模板(平行文)
- ASME B1.1-2003統(tǒng)一英制螺紋中文版_圖文
- 電力環(huán)網(wǎng)柜箱變基礎(chǔ)計算表
- 漱口水公司績效計劃(范文)
- Theme and Rheme 主位與述位(課堂PPT)
- pocib預(yù)算工具(進出口)
- 《群監(jiān)員培訓(xùn)》PPT課件.ppt
- 壓力容器設(shè)計計算書
- 尿毒癥腦病ppt課件
- 部編版四年級下冊語文課件-第三單元-單元解讀-共64張PPT)
- 崗位說明書公安處民警
評論
0/150
提交評論