5年後我剛回到現場,非常生鏽,請耐心等待。我正在研究sql server express,並且需要從單個表中捕獲新的/更新的記錄(實際上只包含它們的一部分),以便插入到另一個表中。 (我將使用這個其他表作爲水晶報表的數據源。)我沒有測試環境,必須構建並填充大約6個表來測試觸發器。觸發是我唯一的選擇嗎?感謝您的任何意見。是我需要的觸發器嗎?
回答
是的,你是對的。這是他們用來做什麼的。
首先,得到一個測試環境。沒有安全的人就無法工作。
可以使用觸發器這個沒錯,但你真的需要一個單獨的表或將查詢或視圖(不知道你是否可以在表達某種觀點)做的報告,而不是源。 /刪除
如果您選擇使用觸發器,請務必測試multpe行插入/更新。觸發器需要設計爲一次處理一組數據而不是一行。
如果您有2005/2008,也可以使用OUTPUT
,如this example - 提供您控制插入。
OUTPUT是最好的選擇,因爲觸發器不是那麼明顯。有些事情你不能在OUTPUT中完成,但它的設計恰恰是OP正在嘗試進行的審計類型。 – womp 2009-12-10 22:38:00
觸發器是像正則表達式,如果你有問題,你用任何一個解決這個問題,現在你有兩個問題。我只是想從你的客戶端代碼中插入單個事務。主要是因爲像Triggers這樣的副作用編程只是要求問題出現。如果意外插入了一些不良數據並觸發了觸發器,則無法輕鬆撤消觸發器的操作。觸發器應該是解決方案或最後的手段。插入不再是orthogonal,這導致很難維護代碼。有許多更好的設計決策,像其他人提到的Views,如果數據庫支持它們,Materialized Views是更好的解決方案。
如果你有一個能幹的dba,觸發器不難維護。對於任何涉及無法通過約束或唯一索引處理的數據完整性的問題,它們都是最佳解決方案。數據完整性不能從應用程序維護,因爲它不是唯一改變數據庫中數據的東西。因爲你認爲他們很難使用觸發器,所以最好是短視的。 – HLGEM 2009-12-11 14:01:54
t are不是「硬」,他們是越野車,是副作用編程的反模式。就像我說的那樣,它們不是正交的,可以是非確定性的。避免觸發器是好建議。 – 2009-12-29 18:06:29
- 1. SQL Server 2008 - 多級聯FK - 我需要一個觸發器嗎?
- 2. jBPM是我需要的嗎?
- 3. 需要觸發器的幫助php/mySQL
- 4. TSql觸發器只需要觸發其值已更改的列
- 5. SQL Server觸發器 - 需要更改
- 6. Mysql觸發器需要幫助
- 7. 需要編寫一個觸發器
- 8. 觸發器是異步的嗎?
- 9. JQuery Datepicker需要觸發onclick
- 10. 我需要一個類比:觸發器和事件
- 11. 爲了更新Salesforce中的查找字段,我需要一個Apex類還是隻需要一個觸發器?
- 12. PHP腳本是否需要等待MySql觸發器完成?
- 13. 我需要PolylineOptions嗎?
- 14. 我需要app.config嗎?
- 15. 我需要phpMyAdmin嗎?
- 16. 我需要BackgroundWorker嗎?
- 17. 我需要一個枚舉器嗎?
- 18. iOS訂閱 - 我需要服務器嗎?
- 19. 我需要低通濾波器Sensor.TYPE_ROTATION_VECTOR嗎?
- 20. 我真的需要bindParam嗎?
- 21. 我真的需要MVVM嗎?
- 22. 誰觸發了我的觸發器?
- 23. 在Android中觸發TableRow事件需要幫助嗎?
- 24. 對於iphone開發者,你需要學習可可觸摸嗎?
- 25. 我是否需要擺脫回發或?
- 26. 我是否需要發佈xib資源?
- 27. IsMouseOver上的觸發器需要較大的StrokeThickness
- 28. 我需要用我的項目apk發佈appcompat v7嗎?
- 29. 我需要遊標嗎?
- 30. 我需要json.js文件嗎?
聖鉬!我完全忘記了你可以在水晶報告中做到這一點。謝謝你太多了!你爲我節省了幾周的工作。如果可以的話,我會吻你。 Thx再次:D – 2009-12-11 18:27:58