數(shù)據(jù)庫(kù)原理與SQL Server教程第13章 觸發(fā)器

數(shù)據(jù)庫(kù)原理與SQL Server教程第13章 觸發(fā)器

ID:43215001

大?。?62.50 KB

頁(yè)數(shù):32頁(yè)

時(shí)間:2019-10-03

數(shù)據(jù)庫(kù)原理與SQL Server教程第13章 觸發(fā)器_第1頁(yè)
數(shù)據(jù)庫(kù)原理與SQL Server教程第13章 觸發(fā)器_第2頁(yè)
數(shù)據(jù)庫(kù)原理與SQL Server教程第13章 觸發(fā)器_第3頁(yè)
數(shù)據(jù)庫(kù)原理與SQL Server教程第13章 觸發(fā)器_第4頁(yè)
數(shù)據(jù)庫(kù)原理與SQL Server教程第13章 觸發(fā)器_第5頁(yè)
資源描述:

《數(shù)據(jù)庫(kù)原理與SQL Server教程第13章 觸發(fā)器》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。

1、數(shù)據(jù)庫(kù)原理與SQLServer教程第十三章觸發(fā)器第十三章觸發(fā)器13.1觸發(fā)器簡(jiǎn)介13.2創(chuàng)建和管理觸發(fā)器13.3觸發(fā)器工作原理及應(yīng)用實(shí)訓(xùn)13創(chuàng)建和管理觸發(fā)器2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.1觸發(fā)器簡(jiǎn)介觸發(fā)器是一種特殊類型的存儲(chǔ)過(guò)程,它在試圖更改觸發(fā)器所保護(hù)的數(shù)據(jù)時(shí)自動(dòng)執(zhí)行。觸發(fā)器與特定的表相關(guān)聯(lián)。觸發(fā)器的主要作用是能夠?qū)崿F(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)的一致性。當(dāng)使用UPDATE、INSERT或DELETE中的一種或多種數(shù)據(jù)修改操作在指定表中對(duì)數(shù)據(jù)進(jìn)行修改時(shí),觸發(fā)器會(huì)生效并自動(dòng)執(zhí)行。觸發(fā)器可以查詢

2、其他表,并可以包含復(fù)雜的Transact-SQL語(yǔ)句。一個(gè)表可以有多個(gè)觸發(fā)器。2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.1觸發(fā)器簡(jiǎn)介觸發(fā)器具有如下優(yōu)點(diǎn):(1)實(shí)現(xiàn)數(shù)據(jù)庫(kù)中跨越相關(guān)表的級(jí)聯(lián)修改。(2)實(shí)現(xiàn)比CHECK約束更復(fù)雜的數(shù)據(jù)完整性。(3)實(shí)現(xiàn)自定義的錯(cuò)誤信息。(4)維護(hù)非規(guī)范化數(shù)據(jù)。(5)比較修改前后數(shù)據(jù)的狀態(tài)。2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.2.1創(chuàng)建觸發(fā)器13.2.2修改觸發(fā)器13.2.3刪除觸發(fā)器13.2創(chuàng)建和管理觸發(fā)器2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.2.1創(chuàng)

3、建觸發(fā)器觸發(fā)器可以由Transact-SQL語(yǔ)句創(chuàng)建,也可以通過(guò)企業(yè)管理器來(lái)創(chuàng)建:創(chuàng)建觸發(fā)器的方法:1.使用Transact-SQL語(yǔ)句創(chuàng)建觸發(fā)器2.使用企業(yè)管理器創(chuàng)建觸發(fā)器3.創(chuàng)建觸發(fā)器的注意事項(xiàng)2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.2.1創(chuàng)建觸發(fā)器1.使用Transact-SQL語(yǔ)句創(chuàng)建觸發(fā)器創(chuàng)建觸發(fā)器可以使用CREATETRIGGER語(yǔ)句,其語(yǔ)法格式如下:CREATETRIGGERtrigger_nameON{table

4、view}[WITHENCRYPTION]{{{FOR

5、AFTER

6、INSTEADOF}{[

7、INSERT][,][UPDATE]}[WITHAPPEND][NOTFORREPLICATION]AS[{IFUPDATE(column)[{AND

8、OR}UPDATE(column)][…n]

9、IF(COLUMNS_UPDATED(){bitwise_operator}updated_bitmask){comparison_operator}column_bitmask[…n]}]sql_statement[…n]}}2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.2.1創(chuàng)建觸發(fā)器2.使用企業(yè)管理器創(chuàng)建觸發(fā)器實(shí)例演示:使用企

10、業(yè)管理器創(chuàng)建觸發(fā)器2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.2.1創(chuàng)建觸發(fā)器3.創(chuàng)建觸發(fā)器的注意事項(xiàng)在創(chuàng)建觸發(fā)器時(shí),應(yīng)該考慮到下列事實(shí)和原則:(1)大多數(shù)觸發(fā)器是后反應(yīng)的,約束和INSTEADOF觸發(fā)器是前反應(yīng)的。(2)在觸發(fā)器定義的表中執(zhí)行插入、刪除或者更新語(yǔ)句后觸發(fā)器自動(dòng)執(zhí)行。(3)創(chuàng)建觸發(fā)器的用戶必須有相關(guān)的權(quán)限。(4)只有表或視圖的所有者、sysadmin角色的成員、db_owner和db_ddladmin固定數(shù)據(jù)庫(kù)角色的成員能夠創(chuàng)建和刪除觸發(fā)器,這個(gè)權(quán)限不能被傳遞。(5)表的所有者不能在視圖或者臨時(shí)表上創(chuàng)建AFT

11、ER觸發(fā)器,但是,觸發(fā)器可以引用視圖和臨時(shí)表。(6)表的所有者可以在視圖和臨時(shí)表上創(chuàng)建INSTEADOF觸發(fā)器,INSTEADOF觸發(fā)器大大的擴(kuò)展了視圖能夠支持的更新類型。(7)觸發(fā)器不應(yīng)該返回結(jié)果集2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.2.1創(chuàng)建觸發(fā)器3.創(chuàng)建觸發(fā)器的注意事項(xiàng)在創(chuàng)建觸發(fā)器時(shí),應(yīng)該考慮到下列事實(shí)和原則:(8)觸發(fā)器包含了T-SQL語(yǔ)句,這與存儲(chǔ)過(guò)程完全相同。(9)觸發(fā)器為數(shù)據(jù)庫(kù)對(duì)象,其名稱必須遵循標(biāo)識(shí)符的命名規(guī)則。(10)SQLServer2000允許在一個(gè)表上嵌套幾個(gè)觸發(fā)器。一個(gè)表可以定義多個(gè)觸發(fā)器,

12、每個(gè)觸發(fā)器可以為一個(gè)或幾個(gè)動(dòng)作定義。(11)雖然觸發(fā)器可以引用當(dāng)前數(shù)據(jù)庫(kù)以外的對(duì)象,但只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建觸發(fā)器。(12)在含有用DELETE或UPDATE操作定義的外鍵的表中,不能定義INSTEADOF和INSTEADOFUPDATE觸發(fā)器。(13)不能包含某些語(yǔ)句。2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.2.2修改觸發(fā)器對(duì)已有的觸發(fā)器,可以直接進(jìn)行修改而無(wú)需刪除后再重建,修改觸發(fā)器時(shí),可以使用ALTERTRIGGER語(yǔ)句也可以通過(guò)企業(yè)管理器。修改觸發(fā)器的方法:1.ALTERTRIGGER修改觸發(fā)器2.通過(guò)企業(yè)管理器

13、修改觸發(fā)器2021/8/25數(shù)據(jù)庫(kù)原理與SQLServer教程13.2.2修改觸發(fā)器1.ALTERTRIGGER修改觸發(fā)器ALTERTRIGGER語(yǔ)句語(yǔ)法格式如下:ALTERTRIGGERtr

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。