




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、SQL Server 存儲(chǔ)過程和觸發(fā)器主要內(nèi)容主要內(nèi)容lTransact-SQL編程基礎(chǔ)l事務(wù)管理l游標(biāo) l存儲(chǔ)過程l觸發(fā)器 1 Transact-SQL編程基礎(chǔ)編程基礎(chǔ) l標(biāo)識(shí)符、運(yùn)算符、變量l函數(shù)l流程控制語句lGOTO語句lRETURN語句l打印輸出語句l注釋語句標(biāo)識(shí)符標(biāo)識(shí)符l標(biāo)識(shí)符是由用戶定義的有意義的可識(shí)別的字符序列,通常用來標(biāo)識(shí)服務(wù)器、數(shù)據(jù)庫、數(shù)據(jù)庫對象、常量、變量等 l命名標(biāo)識(shí)符時(shí)必須遵循以下規(guī)則 l第一個(gè)字符必須是下列字符之一: l字母、下劃線(_)、或者# l后續(xù)字符可以是:l字母、數(shù)字、_、#、$、等符號 l不能使用SQL中的關(guān)鍵字和運(yùn)算符,不允許嵌入空格或其它特殊字符 運(yùn)
2、算符運(yùn)算符l算術(shù)運(yùn)算符l+ ,- ,*, / ,%l賦值運(yùn)算符l=l比較運(yùn)算符l= , ,= ,= ,l邏輯運(yùn)算符land ,or ,notlBetweenand,In,Like,Existsl連接運(yùn)算符l+ 用于字符串?dāng)?shù)據(jù)的連接運(yùn)算符的優(yōu)先順序運(yùn)算符的優(yōu)先順序 l*、/、%l+、-l=、=、=、lnotlandlbetween、in、like、orl= 算術(shù)運(yùn)算符算術(shù)運(yùn)算符比較運(yùn)算符比較運(yùn)算符邏輯運(yùn)算符邏輯運(yùn)算符賦值運(yùn)算符賦值運(yùn)算符變量變量 l局部變量l由用戶定義和使用,可賦值并參與運(yùn)算l作用域 批處理、觸發(fā)器、存儲(chǔ)過程l聲明 declare 變量名 數(shù)據(jù)類型,l賦值 select 變量名=
3、值 或 SET 局部變量名=表達(dá)式【例【例1】DECLARE x float, var char(8) 該定義語句定義了變量該定義語句定義了變量x是浮點(diǎn)實(shí)型,變量是浮點(diǎn)實(shí)型,變量var是長度為是長度為8的定長字符數(shù)據(jù)類型。的定長字符數(shù)據(jù)類型。 【例2】定義變量c_code和score,并分別用SET和SELECT語句為它們賦值,然后查詢所有課程號為c_code,且成績小于score的學(xué)生成績信息。DECLARE DECLARE c_codec_code char(6), score char(6), score Numeric(3,1)Numeric(3,1)SET SET c_codec_c
4、ode=130001=130001SELECT score=80SELECT score=80 SELECT SELECT * * FROM FROM T_GradeT_Grade WHERE WHERE CourseCodeCourseCode=c_codec_code AND AND GradescoreGrade=3 BEGIN SET text=你選了你選了+CAST(cn AS char(2) /* CAST函數(shù)將函數(shù)將cn的值轉(zhuǎn)換為長度為的值轉(zhuǎn)換為長度為2的字符數(shù)據(jù)的字符數(shù)據(jù)*/ SET text=text+門課。很好,你完成了任務(wù)!門課。很好,你完成了任務(wù)! ENDELSE BE
5、GIN SET text=你選了你選了+CAST(cn AS char(2) SET text=text+門課。選課太少,加油!門課。選課太少,加油! ENDSELECT text AS 選課提示選課提示多分支的選擇語句多分支的選擇語句-CASEl簡單簡單 CASE 函數(shù)形式:將某個(gè)表達(dá)式與一組函數(shù)形式:將某個(gè)表達(dá)式與一組簡單表達(dá)式進(jìn)行比較以確定結(jié)果。簡單表達(dá)式進(jìn)行比較以確定結(jié)果。lCASE 搜索函數(shù)形式:計(jì)算一組條件表達(dá)式搜索函數(shù)形式:計(jì)算一組條件表達(dá)式以確定結(jié)果以確定結(jié)果簡單CASE函數(shù)l語法格式:語法格式: CASE 輸入表達(dá)式輸入表達(dá)式 WHEN 情況表達(dá)式情況表達(dá)式 THEN 結(jié)果表
6、達(dá)式結(jié)果表達(dá)式 . ELSE 結(jié)果表達(dá)式結(jié)果表達(dá)式 ENDl說明:說明:1)當(dāng)表達(dá)式的值與某個(gè)情況表達(dá)式的值相等時(shí),返回相當(dāng)表達(dá)式的值與某個(gè)情況表達(dá)式的值相等時(shí),返回相應(yīng)結(jié)果表達(dá)式的值應(yīng)結(jié)果表達(dá)式的值 。 2)如果全部都不相等,則返回如果全部都不相等,則返回 ELSE中的結(jié)果表達(dá)式,中的結(jié)果表達(dá)式,若沒有若沒有ELSE子句,則返回子句,則返回NULL值。值。 【例例5 5】查詢查詢0707級女同學(xué)的住校情況。級女同學(xué)的住校情況。SELECT StudentName AS 姓名姓名, CASE LiveInDorm WHEN 0 THEN 未住校未住校 WHEN 1 THEN 住校住校 END
7、AS 是否住校是否住校 FROM T_StudentWHERE Sex=女女 AND LEFT(StudentCode,2)=07字段:是否住校的表達(dá)CASE 搜索函數(shù)搜索函數(shù)語法格式:語法格式: CASE WHEN 條件表達(dá)式條件表達(dá)式 THEN 結(jié)果表達(dá)式結(jié)果表達(dá)式 . ELSE結(jié)果表達(dá)式結(jié)果表達(dá)式 END【例例6 6】統(tǒng)計(jì)每個(gè)學(xué)生平均成績并劃分等級統(tǒng)計(jì)每個(gè)學(xué)生平均成績并劃分等級。SELECT SELECT StudentCodeStudentCode AS AS 學(xué)號學(xué)號, STR(AVG(Grade),5,2) AS , STR(AVG(Grade),5,2) AS 平均成績平均成績,
8、 CASE CASE WHEN WHEN AVG(GradeAVG(Grade)=90 THEN A)=90 THEN A WHEN WHEN AVG(GradeAVG(Grade)=80 THEN B)=80 THEN B WHEN WHEN AVG(GradeAVG(Grade)=70 THEN C)=70 THEN C WHEN WHEN AVG(GradeAVG(Grade)=60 THEN D)=60 THEN D WHEN WHEN AVG(GradeAVG(Grade)60 THEN E)60 THEN E END AS END AS 等級等級 FROM FROM T_Grade
9、T_Grade GROUP BY GROUP BY StudentCodeSELECTStudentCodeSELECT流程控制語句流程控制語句2BEGINEND語句l定義語句塊:l多條T-SQL語句使用BEGINEND組合起來形成一個(gè)語句塊。l可以嵌套使用l語法形式為 BEGIN SQL語句1 SQL語句2 END 流程控制語句流程控制語句3WHILECONTINUEBREAK語句l條件循環(huán)語句lContinue可以使程序跳過其后面的語句,回到while循環(huán)的第一行命令;lBreak使程序完全跳出循環(huán),結(jié)束while語句。l語法形式為 WHILE BREAK或CONTINUE 結(jié)束結(jié)束整個(gè)整
10、個(gè)循環(huán)循環(huán)結(jié)束結(jié)束本次本次循環(huán)循環(huán)while breakwhile continue【例例8 8】計(jì)算計(jì)算1010!。 DECLARE p int, i smallint, text varchar(100)SET p=1SET i=1WHILE i=10 BEGIN SET p= p*i SET i=i+1 ENDSET text=12310=+CAST(p AS char(10)SELECT text AS 計(jì)算結(jié)果GOTOGOTO語句語句 GOTO語句的語法形式為 l跳轉(zhuǎn)語句,跳轉(zhuǎn)到標(biāo)有標(biāo)識(shí)符指定位置 GOTO label label:【例9】利用利用GOTOGOTO語句求出從語句求出從
11、1 1加到加到5 5的總和的總和 RETURNRETURN語句語句 l終止語句,用于無條件終止一個(gè)查詢、存儲(chǔ)過程或者批處理。lRETURN語句的語法形式為 RETURN 整數(shù) 打印輸出語句打印輸出語句 可以顯示變量的值PRINT語句的語法如下 PRINT | | 例例10 利用利用PRINTPRINT語句判斷變量值的示例語句判斷變量值的示例 注釋語句注釋語句 (1)整塊注釋/* 注釋塊 */(2)從行的后部分注釋 語句 注釋事務(wù)管理事務(wù)管理B Beginegin Transaction Transaction 事務(wù)開始事務(wù)開始 SQLSQL語句組語句組 C Commit Transaction
12、 ommit Transaction 提交事務(wù)提交事務(wù)說明:說明:l用戶定義的事務(wù)也稱為顯式事務(wù)用戶定義的事務(wù)也稱為顯式事務(wù)l事務(wù)只用于數(shù)據(jù)修改語句事務(wù)只用于數(shù)據(jù)修改語句l可以在可以在commit transactioncommit transaction之前使用之前使用roolbackroolback transaction transaction取取消事務(wù)并撤銷對數(shù)據(jù)所作的任何改變,命令為:消事務(wù)并撤銷對數(shù)據(jù)所作的任何改變,命令為:roolbackroolback transaction transaction savepoint_namesavepoint_name lSavepoint
13、_nameSavepoint_name為保存點(diǎn),是用戶放在事務(wù)中的一個(gè)標(biāo)記,為保存點(diǎn),是用戶放在事務(wù)中的一個(gè)標(biāo)記,指明回滾點(diǎn)指明回滾點(diǎn)l事務(wù)管理通過確保要么完成整個(gè)事務(wù),要么回滾事務(wù),來確事務(wù)管理通過確保要么完成整個(gè)事務(wù),要么回滾事務(wù),來確保數(shù)據(jù)庫的一致性和可恢復(fù)性保數(shù)據(jù)庫的一致性和可恢復(fù)性例例1111 建立一個(gè)事務(wù),建立一個(gè)事務(wù),用來將用來將mag_deptmag_dept表中表中depiddepid為為1 1的記錄的的記錄的depmanagerdepmanager字段的值更改為字段的值更改為“王涓涓王涓涓” 例例1212 建立一個(gè)事務(wù),建立一個(gè)事務(wù),用來更改用來更改mag_deptmag_
14、dept表中表中depiddepid為為1 1以及以及depiddepid為為2 2的記錄的的記錄的depmanagerdepmanager字段字段的值,并回滾事務(wù)到保存點(diǎn)的值,并回滾事務(wù)到保存點(diǎn)存儲(chǔ)過程存儲(chǔ)過程 l存儲(chǔ)過程:可以將一些固定的操作集中起來由SQL Server數(shù)據(jù)庫服務(wù)器完成,以實(shí)現(xiàn)某個(gè)任務(wù);存儲(chǔ)過程允許聲明變量、輸出參數(shù)、返回單個(gè)或者多個(gè)結(jié)果集以及返回值;l存儲(chǔ)過程存在于數(shù)據(jù)庫內(nèi),可由應(yīng)用程序調(diào)用執(zhí)行。l存儲(chǔ)過程分為兩類:l系統(tǒng)存儲(chǔ)過程(存儲(chǔ)在master數(shù)據(jù)庫中)l用戶自定義的存儲(chǔ)過程。l使用存儲(chǔ)過程有以下優(yōu)點(diǎn):1)可以在一個(gè)存儲(chǔ)過程中執(zhí)行多條SQL語句;2)可多次調(diào)用;3
15、)創(chuàng)建時(shí)就在服務(wù)器端進(jìn)行了編譯,節(jié)省SQL語句的運(yùn)行時(shí)間;4)提供了安全機(jī)制,它限制了用戶訪問SQL語句的權(quán)利,只為特定用戶開放存儲(chǔ)過程。創(chuàng)建存儲(chǔ)過程創(chuàng)建存儲(chǔ)過程 常用存儲(chǔ)過程的語法格式:常用存儲(chǔ)過程的語法格式: CREATE PROCDURE 存儲(chǔ)過程名存儲(chǔ)過程名 形式參數(shù)形式參數(shù) 數(shù)據(jù)類型數(shù)據(jù)類型VARYING=默認(rèn)值默認(rèn)值OUTPUT AS SQL語句語句1 SQL語句語句n 說明:說明: l“形式參數(shù)形式參數(shù)”名稱必須符合標(biāo)識(shí)符規(guī)則;名稱必須符合標(biāo)識(shí)符規(guī)則;lOUTPUT表示該參數(shù)是可以返回的,可將信息返回調(diào)用者;表示該參數(shù)是可以返回的,可將信息返回調(diào)用者;l如果有多個(gè)參數(shù),可以依次按
16、以上參數(shù)定義規(guī)則列出,用逗號如果有多個(gè)參數(shù),可以依次按以上參數(shù)定義規(guī)則列出,用逗號“,”隔開。隔開。例例1313 建立一個(gè)名為建立一個(gè)名為“全部雇員全部雇員”的存儲(chǔ)過程,的存儲(chǔ)過程,用用來查詢來查詢mag_empmag_emp表的所有記錄表的所有記錄 例例14 建立一個(gè)名為建立一個(gè)名為“雇員查詢雇員查詢”的存儲(chǔ)過程,的存儲(chǔ)過程,查詢某種職務(wù)雇員的所有情況查詢某種職務(wù)雇員的所有情況 【例15】在School中創(chuàng)建一個(gè)的存儲(chǔ)過程proc_SearchStudent,查詢指定學(xué)生的選課情況。CREATE PROC CREATE PROC proc_SearchStudentproc_SearchSt
17、udent stcodestcode char(8) char(8)ASASSELECT SELECT T_Student.StudentName,T_Course.CourseNameT_Student.StudentName,T_Course.CourseNameFROM T_Student JOIN T_Grade JOIN T_CourseFROM T_Student JOIN T_Grade JOIN T_Course ON T_Grade.CourseCode=T_Course.CourseCode ON T_Grade.CourseCode=T_Course.CourseCode
18、 ON T_Student.StudentCode=T_Grade.StudentCode ON T_Student.StudentCode=T_Grade.StudentCodeWHERE WHERE T_Student.StudentCodeT_Student.StudentCode=scodescode 修改存儲(chǔ)過程修改存儲(chǔ)過程 修改存儲(chǔ)過程的語法為 ALTER PROCEDURE ; =OUTPUT AS 例例16 修改存儲(chǔ)過程修改存儲(chǔ)過程“雇員查詢雇員查詢”,用來,用來統(tǒng)計(jì)某一職務(wù)雇員的總?cè)藬?shù)統(tǒng)計(jì)某一職務(wù)雇員的總?cè)藬?shù) 運(yùn)行存儲(chǔ)過程運(yùn)行存儲(chǔ)過程 運(yùn)行存儲(chǔ)過程的語法為 EXECUTE 存
19、儲(chǔ)過程名存儲(chǔ)過程名形參形參=實(shí)參值實(shí)參值|變量變量OUTPUT|DEFAULT說明:說明:1)“形參形參”是創(chuàng)建存儲(chǔ)過程時(shí)定義的形參名;是創(chuàng)建存儲(chǔ)過程時(shí)定義的形參名;2)“實(shí)參值實(shí)參值”是輸入?yún)?shù)的值;是輸入?yún)?shù)的值;3)“變量變量”表示用來保存參數(shù)或者返回參數(shù)的變量;表示用來保存參數(shù)或者返回參數(shù)的變量;OUTPUT表示表示指定參數(shù)為返回參數(shù);指定參數(shù)為返回參數(shù);4)DEFAULT表示使用該參數(shù)的默認(rèn)值作為實(shí)參。表示使用該參數(shù)的默認(rèn)值作為實(shí)參。5)如有多個(gè)參數(shù),可依次按以上參數(shù)定義規(guī)則列出,用逗號如有多個(gè)參數(shù),可依次按以上參數(shù)定義規(guī)則列出,用逗號“,”隔隔開。開。調(diào)用存儲(chǔ)過程調(diào)用存儲(chǔ)過程pro
20、c_Courseproc_Course的語句為:的語句為:EXEC EXEC proc_Courseproc_Course調(diào)用存儲(chǔ)過程調(diào)用存儲(chǔ)過程proc_SearchStudentproc_SearchStudent,查詢查詢0510110105101101學(xué)生的選課情況。學(xué)生的選課情況。EXEC EXEC proc_SearchStudentproc_SearchStudent 05101101 05101101或或EXEC proc_ EXEC proc_ SearchStudentSearchStudent scodescode=05101101=05101101采用采用“參數(shù)參數(shù)=值
21、值”的形的形式,各個(gè)參數(shù)的順序式,各個(gè)參數(shù)的順序可以任意排列可以任意排列。實(shí)參順序和定義時(shí)實(shí)參順序和定義時(shí)的參數(shù)順序一致。的參數(shù)順序一致。【例【例1717】在在SchoolSchool中創(chuàng)建一個(gè)的存儲(chǔ)過程中創(chuàng)建一個(gè)的存儲(chǔ)過程proc_SearchStudentAvgGradeproc_SearchStudentAvgGrade,查詢某個(gè)學(xué)生的選課數(shù)目查詢某個(gè)學(xué)生的選課數(shù)目和平均成績和平均成績。CREATE PROC CREATE PROC proc_SearchStudentAvgGradeproc_SearchStudentAvgGrade stcodestcode char(8), cha
22、r(8), stcountstcount intint OUTPUT,stavgOUTPUT,stavg intint OUTPUT OUTPUTASASSELECT SELECT stcountstcount= =COUNT(T_Grade.StudentCode),stavgCOUNT(T_Grade.StudentCode),stavg= =AVG(T_Grade.GradeAVG(T_Grade.Grade) )FROM FROM T_GradeT_GradeWHERE WHERE T_Grade.StudentCodeT_Grade.StudentCode=stcodestcodeG
23、ROUP BY GROUP BY T_Grade.StudentCodeT_Grade.StudentCode調(diào)用存儲(chǔ)過程調(diào)用存儲(chǔ)過程proc_SearchStudentAvgGradeproc_SearchStudentAvgGrade,查詢查詢0510110105101101學(xué)生的選課數(shù)目和平均成績學(xué)生的選課數(shù)目和平均成績。DECLARE DECLARE scountscount intint , ,savgsavg intint EXECEXEC proc_SearchStudentAvgGradeproc_SearchStudentAvgGrade 05101101,scount 05
24、101101,scount OUTPUT,savgOUTPUT,savg OUTPUT OUTPUT PRINT PRINT 學(xué)生學(xué)生+ 05101101+ 05101101+的選課數(shù)目為的選課數(shù)目為+CAST(scountCAST(scount AS AS char(2)+char(2)+門門 PRINT PRINT 學(xué)生學(xué)生+ 05101101+ 05101101+的平均成績?yōu)榈钠骄煽優(yōu)?STR(savg,5,2)+STR(savg,5,2)+分分 刪除存儲(chǔ)過程刪除存儲(chǔ)過程 刪除存儲(chǔ)過程的語法為 Drop Procedure 游標(biāo)游標(biāo)l問題要對查詢結(jié)果進(jìn)行一行行的操作,如何做到? 游游標(biāo)
25、標(biāo)引引例例以前:使用SELECT語句對表格進(jìn)行查詢,返回的結(jié)果集包括所有滿足條件的行。思考:如果要求每次只顯示表格(例如上面的Course表)中的一行,該如何處理?這在將T-SQL嵌入到其他高級語言(如C、VC、Delphi等)的編程中經(jīng)常用到。 游標(biāo)概述游標(biāo)概述l可以將游標(biāo)看作一種特殊的指針,它可以指向與它相關(guān)聯(lián)的結(jié)果集中的任意一行,以便對當(dāng)前位置的行進(jìn)行處理。l游標(biāo)提供了對一個(gè)結(jié)果集進(jìn)行逐行處理的能力:1.在結(jié)果集中定位特定行2.從結(jié)果集的當(dāng)前位置檢索行3.支持對結(jié)果集中當(dāng)前位置的行進(jìn)行數(shù)據(jù)處理(修改/刪除)使用游標(biāo)的步驟使用游標(biāo)的步驟l聲明游標(biāo)l打開游標(biāo)l處理數(shù)據(jù)(讀取/修改/刪除)可以
26、和其他T-SQL語句配合靈活使用l關(guān)閉游標(biāo)(與打開游標(biāo)配對)l刪除游標(biāo)(與聲明游標(biāo)配對,此時(shí)釋放分配給游標(biāo)的所有資源)【問題】游標(biāo)基本使用的例子相關(guān)語法格式相關(guān)語法格式l聲明游標(biāo)DECLARE cursor_name CURSORDECLARE cursor_name CURSORFORWORD_ONLY|SCROLLFORWORD_ONLY|SCROLLFOR select_statementsFOR select_statementsl打開游標(biāo)OPEN cursor_nameOPEN cursor_namel使用游標(biāo)FETCH NEXT|PRIOR|FIRST|LASTFETCH NEXT
27、|PRIOR|FIRST|LASTFROM cursor Into variable_nameFROM cursor Into variable_namel關(guān)閉游標(biāo)CLOSE cursor_nameCLOSE cursor_namel刪除游標(biāo)DEALLOCATION cursor_nameDEALLOCATION cursor_name如果遍歷整個(gè)結(jié)果集?如果遍歷整個(gè)結(jié)果集?l使用fetch_status:l該全局變量/配置函數(shù)返回被最后FETCH語句執(zhí)行的游標(biāo)的狀態(tài),返回類型為int:1.0:FETCH語句成功2.1:FETCH語句失敗或此行不在結(jié)果集中3.2:被提取的行不存在USE mas
28、terGOCREATE PROCEDURE sp_BuildIndexesASDECLARE TableName sysname, msg varchar(100), cmd varchar(100)DECLARE table_cur CURSOR FORSELECT name FROM sysobjects WHERE type=uOPEN table_curFETCH NEXT FROM table_cur INTO TableNameWHILE fetch_status = 0BEGINIF fetch_status = -2CONTINUESELECT msg = “Building
29、indexes for table”+TableName+”PRINT msgSELECT cmd = “DBCC DBREINDEX (”+TableName+”)”EXEC (cmd)PRINT “ “FETCH NEXT FROM table_cur INTO TableNameENDDEALLOCATE table_curGO觸發(fā)器觸發(fā)器l定義在表上的一個(gè)對象l一種特殊類型的存儲(chǔ)過程l不需要專門語句調(diào)用,通過事件進(jìn)行觸發(fā)而被執(zhí)行l(wèi)當(dāng)執(zhí)行insert、delete和update語句時(shí)自動(dòng)被觸發(fā)執(zhí)行l(wèi)觸發(fā)器可以在有數(shù)據(jù)操作時(shí)自動(dòng)強(qiáng)制執(zhí)行某些業(yè)務(wù)規(guī)則l觸發(fā)器執(zhí)行的內(nèi)容可以是報(bào)警、維護(hù)數(shù)據(jù)的完
30、整性、特殊的數(shù)據(jù)處理l觸發(fā)器可以用于完整性檢查,但比約束、默認(rèn)值、規(guī)則等功能強(qiáng)大、靈活lSQL Server的兩種觸發(fā)器: (1)AFTER觸發(fā)器:數(shù)據(jù)被修改后觸發(fā),對變動(dòng)的數(shù)據(jù)進(jìn)行檢查。(2)INSTEAD OF觸發(fā)器:數(shù)據(jù)修改之前被觸發(fā),并取代修改數(shù)據(jù)的操作,轉(zhuǎn)去執(zhí)行觸發(fā)器定義的操作。例如,執(zhí)行完下面的語句后:例如,執(zhí)行完下面的語句后: CREATE TRIGGER tri_StudentInsDel ON dbo.T_Student FOR INSERT, DELETE AS SELECT * FROM T_Student 當(dāng)對表當(dāng)對表T_Student的數(shù)據(jù)進(jìn)行插入或刪除操的數(shù)據(jù)進(jìn)行插
31、入或刪除操作時(shí),觸發(fā)器作時(shí),觸發(fā)器“tri_StudentUpdate”將會(huì)自動(dòng)執(zhí)行。將會(huì)自動(dòng)執(zhí)行。創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器 創(chuàng)建觸發(fā)器時(shí)提供:觸發(fā)器名稱、定義觸發(fā)器的表、觸發(fā)器觸發(fā)事件、數(shù)據(jù)修改語句。創(chuàng)建觸發(fā)器的語法為CREATE TRIGGER 觸發(fā)器名觸發(fā)器名ON 表名表名|視圖名視圖名FOR INSERT,UPDATE,DELETEASSQL語句段語句段一個(gè)觸發(fā)器只能用于一個(gè)表兩個(gè)特殊的邏輯表:inserted、deleted例例1818 利用觸發(fā)器來保證利用觸發(fā)器來保證期刊采編系統(tǒng)數(shù)據(jù)庫中期刊采編系統(tǒng)數(shù)據(jù)庫中mag_infomag_info表的參照完整性表的參照完整性 【例【例1919】在在SchoolSchool數(shù)據(jù)庫的數(shù)據(jù)庫的T_StudentT_Student表上創(chuàng)建一個(gè)觸發(fā)器表上創(chuàng)建一個(gè)觸發(fā)器tri_StudentCodeUpdatetri_StudentCodeUpdate,當(dāng)對學(xué)號列進(jìn)行修改時(shí),給出提示信息并當(dāng)對學(xué)號列進(jìn)行修改時(shí),給出提示信息并取消修改操作。取消修改操作。 CREATE TRIGGER CREATE TRIGGER tri_StudentCodeUpdatetri_StudentCodeUpdateON ON T_StudentT_StudentFOR UPDATEFOR UPDATEAS
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 監(jiān)理工程師月度考核評分
- 國際結(jié)算考試題及答案
- 防煤氣中毒安全教育幼兒園
- 生料輥壓機(jī)培訓(xùn)
- 支原體肺炎健康宣講
- 2025年中國幕布行業(yè)市場全景分析及前景機(jī)遇研判報(bào)告
- 工地文明施工培訓(xùn)
- 職場文化培訓(xùn)
- 教師家庭教育培訓(xùn)心得
- 護(hù)理帶教老師教學(xué)小講課
- 2024版機(jī)電質(zhì)量標(biāo)準(zhǔn)化管理圖冊
- 游戲代練創(chuàng)新創(chuàng)業(yè)方案
- 警務(wù)實(shí)戰(zhàn)基礎(chǔ)知識(shí)
- 中國傳統(tǒng)禮儀全課件
- 新北師大版七年級下冊生物教案全冊
- 饋線自動(dòng)化-集中型饋線自動(dòng)化(配電自動(dòng)化)
- 《膽腸吻合技術(shù)》課件
- 圍手術(shù)期患者疼痛管理課件
- 2024年度-2025年度XX村第三輪土地延包工作總結(jié)
- 2025年江蘇新海連發(fā)展集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 低碳航空器結(jié)構(gòu)設(shè)計(jì)-深度研究
評論
0/150
提交評論