返回對激發(fā)觸發(fā)器的 UPDATE、INSERT 或 DELETE 語句執(zhí)行的觸發(fā)器數(shù)量。TRIGGER_NESTLEVEL 用于觸發(fā)器中以確定當前的嵌套級別。
TRIGGER_NESTLEVEL ( [ object_id ] )
object_id
是觸發(fā)器的對象 ID。如果指定了 object_id,則返回為該語句執(zhí)行指定觸發(fā)器的次數(shù)。如果未指定 object_id,則返回為該語句執(zhí)行全部觸發(fā)器的次數(shù)。
當 object_id 省略時(與空值不同),TRIGGER_NESTLEVEL 返回調(diào)用堆棧上的觸發(fā)器數(shù)(包括它本身)。當觸發(fā)器所執(zhí)行命令導(dǎo)致其它觸發(fā)器激發(fā),或?qū)е铝擞|發(fā)器的連續(xù)激發(fā)時,可省略 object_id。
如果在觸發(fā)器之外執(zhí)行,且 object_id 不是 NULL,則 TRIGGER_NESTLEVEL 返回 0。
TRIGGER_NESTLEVEL 以對象 ID 作為其可選參數(shù)。當 object_id 顯式指定為 NULL 或所引用的對象 ID 無效時,無論 TRIGGER_NESTLEVEL 是在觸發(fā)器內(nèi)部還是外部使用,均返回 NULL 值。
IF ( (SELECT trigger_nestlevel( object_ID('xyz') ) ) > 5 )
RAISERROR('Trigger xyz nested more than 5 levels.',16,-1)
IF ( (SELECT trigger_nestlevel() ) > 5 )
RAISERROR
('This statement nested over 5 levels of triggers.',16,-1)
相關(guān)文章