最近有踩到這個雷,當使用 NHibernate 去存取資料庫時,你在變更的 Table 加上 Trigger, 而這個 Trigger 有去異動到資料,

那 NHibernate 的類似保護機制的東西就會噴這個錯誤:

Batch update returned unexpected row count from update; actual row count: 2; expected: 1

就算不懂英文拿去翻譯也知道他是說:「我只動了 1 Row,DB 卻說我動了 2 Row,這有問題,RollBack!」

既然這樣,應該有方法要 DB 不去計算 Trigger 所異動的 Row

經 Google 後查到了這個設定:

SET NOCOUNT ON

把它加到 Trigger 內的第一行,就可以解決這個問題了!


感謝閱讀!

喜歡這篇文章或是有幫助到你嗎? 歡迎分享給你的朋友!

有任何問題、回饋或您認為我會感興趣的任何東西嗎? 請在下面發表評論,或者是直接聯絡我


Puck Wang

Puck Wang

Hi! 我是 Puck Wang,這個部落格的作者,是一位全端網站開發者,常使用 .Net 和 React 進行開發,專注於架構研究,你可以在這個部落格看到我精選的筆記內容,希望對你會有所幫助。

更多關於我的訊息,可至關於關於頁面。