什么是觸發(fā)器 各類觸發(fā)器的特點?
各類觸發(fā)器的特點?觸發(fā)器是SQL server提供給程序員和數(shù)據(jù)分析人員的一種方法,用于確保數(shù)據(jù)完整性。它是一個與表事件相關的特殊存儲過程。它的執(zhí)行不是由程序調用或手動啟動的,而是由事件觸發(fā)的。例如,
各類觸發(fā)器的特點?
觸發(fā)器是SQL server提供給程序員和數(shù)據(jù)分析人員的一種方法,用于確保數(shù)據(jù)完整性。它是一個與表事件相關的特殊存儲過程。它的執(zhí)行不是由程序調用或手動啟動的,而是由事件觸發(fā)的。例如,當一個表被操作(insert、delete、update)時,它的執(zhí)行將被激活。觸發(fā)器通常用于強制執(zhí)行數(shù)據(jù)完整性約束和業(yè)務規(guī)則。觸發(fā)器可用于在寫入數(shù)據(jù)表之前強制驗證或轉換數(shù)據(jù)。當觸發(fā)錯誤發(fā)生時,更改的結果將被撤銷。一些數(shù)據(jù)庫管理系統(tǒng)可以將觸發(fā)器用于數(shù)據(jù)定義語言(DDL),稱為DDL觸發(fā)器??筛鶕?jù)具體情況更換。sqlserver包括三種觸發(fā)器:DML觸發(fā)器、DDL觸發(fā)器和login觸發(fā)器。
1. DML觸發(fā)器當數(shù)據(jù)庫表中的數(shù)據(jù)發(fā)生變化時,包括insert、update、delete等任何操作,如果我們將相應的DML觸發(fā)器寫入表中,那么觸發(fā)器將自動執(zhí)行。DML觸發(fā)器的主要功能是執(zhí)行業(yè)務規(guī)則并擴展sqlserver約束和默認值。因為我們知道約束只能約束同一個表中的數(shù)據(jù),任意SQL命令都可以在觸發(fā)器中執(zhí)行。
2. DDL觸發(fā)器是sqlserver2005中的一個新觸發(fā)器。主要用于對數(shù)據(jù)庫中的表、觸發(fā)器、視圖等結構的操作進行審計和標準化。例如,在修改表、修改列、添加表、添加列等。它是在數(shù)據(jù)庫結構發(fā)生變化時實現(xiàn)的。我們主要用它來記錄數(shù)據(jù)庫的修改過程,并限制程序員對數(shù)據(jù)庫的修改,比如不允許刪除一些指定的表。
3. Login觸發(fā)器Login觸發(fā)器觸發(fā)存儲過程以響應登錄事件。在與SQL server實例建立用戶會話時引發(fā)此事件。登錄觸發(fā)器在登錄的身份驗證階段完成之后和用戶會話實際建立之前觸發(fā)。因此,所有來自觸發(fā)器內部并通常到達用戶的消息(如錯誤消息和來自print語句的消息)都會發(fā)送到sqlserver錯誤日志。如果身份驗證失敗,則不會觸發(fā)登錄觸發(fā)器。
DML觸發(fā)器DDL觸發(fā)器有什么區(qū)別?
一個用于此數(shù)據(jù)庫,另一個用于整個實例。此實例中的所有數(shù)據(jù)庫都有效