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