程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 使用遞歸觸發器來操作指針

使用遞歸觸發器來操作指針

編輯:關於SqlServer

盡管遞歸觸發器比較復雜而且難於管理,但是它使用起來非常方便。本文中,我們將簡單描述有關遞歸觸發器的內容,並提供了使用它們的時候必須記住的一些有用的技巧。

遞歸觸發器能夠在原始列表中或者在其他列表中激發其他的觸發器。這兩種類型的觸發器遞歸分為直接的或間接的遞歸。當一個觸發器本身起作用時,一個直接的遞歸就生成。當一個觸發器以其他列表作用時,一個間接的遞歸就生成了。

當使用遞歸觸發器時請記住的內容
觸發器遞歸局限於32位。如果一個觸發器以無限循環或超過32位,觸發器就會終止數據交換並停留在開始處。
如果一個觸發器操作ROLLBACK TRANSACTION,將不會執行其他的觸發器。
嚴格地檢測遞歸觸發器。未經檢測的遞歸觸發器將對數據操作帶來很大的危害。
超過32位的觸發器是一個無實際意義的觸發器。這樣應該考慮被控制的邏輯循環或其他程序終止檢查,這對遞歸觸發器的保護很有作用的。
不能控制觸發器初始更改的地方。所以你的列表必須以一個特定的方式來更新,你不能使用遞歸觸發器。你只能設置第一個和最後一個觸發器。
間接遞歸在缺省情況下為ON。如果想把它變為OFF,必須使用sp_configure來設置嵌套觸發器選擇。
直接遞歸在缺省情況下是OFF。可以通過使用ALTER DATABASE聲明把它變為ON。以下范例將直接遞歸變成dbName數據庫。
USE master
GO
ALTER DATABASE dbName
SET RECURSIVE_TRIGGERS ON
GO

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved