自動觸發(fā)器(trigger)是SQL server 提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執(zhí)行不是由程序調用,也不是手工啟動,而是由事件來觸發(fā),比如當對一個表進行操作( insert,delete, update)時就會激活它執(zhí)行。觸發(fā)器經常用于加強數據的完整性約束和業(yè)務規(guī)則等。 觸發(fā)器可以從 DBA_TRIGGERS ,USER_TRIGGERS 數據字典中查到。SQL3的觸發(fā)器是一個能由系統(tǒng)自動執(zhí)行對數據庫修改的語句。
觸發(fā)器也可用于強制引用完整性,以便在多個表中添加、更新或刪除行時,保留在這些表之間所定義的關系。然而,強制引用完整性的方法是在相關表中定義主鍵和外鍵約束。如果使用數據庫關系圖,則可以在表之間創(chuàng)建關系以自動創(chuàng)建外鍵約束。
觸發(fā)器可以查詢其他表,而且可以包含復雜的SQL語句。它們主要用于強制服從復雜的業(yè)務規(guī)則或要求。例如:您可以根據客戶當前的帳戶狀態(tài),控制是否允許插入新訂單。
觸發(fā)器也可用于強制引用完整性,以便在多個表中添加、更新或刪除行時,保留在這些表之間所定義的關系。然而,強制引用完整性的方法是在相關表中定義主鍵和外鍵約束。如果使用數據庫關系圖,則可以在表之間創(chuàng)建關系以自動創(chuàng)建外鍵約束。
觸發(fā)器與存儲過程的區(qū)別是觸發(fā)器不能執(zhí)行EXECUTE語句調用,而是在用戶執(zhí)行Transact-SQL語句時自動觸發(fā)執(zhí)行。