程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 關於SQLServer2005多觸發器執行問題

關於SQLServer2005多觸發器執行問題

編輯:關於SqlServer

問題描述:

在某環境中數據表存在多個觸發器,數據的增刪改是標准的每個表都有的觸發器,此外還存在關於校驗的觸發器;起因是寫完觸發器後,有一次同事詢問說觸發器不起作用了,沒有提示錯誤,但是數據無法保存;我也有點莫名其妙,在查詢分析器中執行直接就提示錯誤了,可在應用程序中無法提示錯誤。

同事提醒說需要執行一段設置觸發器觸發先後順序的代碼,查了一下為 sp_settriggerorder ;看了下幫助修改了一下即可。不過只看 SQLServer 聯機幫助似乎是無法理解的,通過此次才了解該存儲過程的意義。

順便提一句,本環境是在SQLServer2000中,非2005中

以下為聯機幫助中的釋義。

關於SQLServer2005多觸發器執行問題

做個簡單測試 ,新建 2 張表和 2 個觸發器 關於SQLServer2005多觸發器執行問題關於SQLServer2005多觸發器執行問題

為 TestA 表插入一個 A 值,系統提示該條記有問題 , 不能重復保存!

但是假如在應用程序中的話,很可能系統不會提示錯誤,但是保存失敗,原因是 Tri_Syn_Test1 一定會執行成功,而應用程序捕獲不到後面觸發器中的錯誤了。

這個時候需要將 Order 設置為 first

關於SQLServer2005多觸發器執行問題

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