1. 消除trigger的嵌套調(diào)用。最好不要用 E X E C sp_c o n f i g u r e 'n e s t e d t r i g g e r s', '0', 應(yīng)該在trigger中使用判斷語(yǔ)句, 例如:if not UPDATE (NAME) RETURN。
2. 使用 not for r e p l i c a t i o n 禁止在復(fù)制的時(shí)候觸發(fā)trigger。
3. 創(chuàng)建p u b l i s h e r article的時(shí)候, 設(shè)置 c o p y u s e r t r i g g e r s為 true。
這樣保證:trigger不會(huì)嵌套調(diào)用;復(fù)制不會(huì)觸發(fā)trigger;而且publisher 和 subscriber上都會(huì)有觸發(fā)器, 這樣trigger的執(zhí)行結(jié)果會(huì)實(shí)時(shí)得反映到當(dāng)前節(jié)點(diǎn)并會(huì)復(fù)制到其他節(jié)點(diǎn)。
例:
C R E A T E T R I G G E R [trg_testtable] on [dbo].[testtable]
for I N S E R T , U P D A T E
not for R E P L I C A T I O N
AS
if not U P D A T E (n a m e) R E T U R N
U P D A T E t e s t t a b l e S E T anum = dbo.fn_G e t O r d e r S t r i n g(name) W H E R E id in (S E LE CT id F R O M I N S E R T E D )
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:SQL Server 可更新訂閱事務(wù)復(fù)制的trigger處理
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112164734.html