在應用程序開發中有一個防禦性編程的概念。如何使用Transact-SQL實現防禦性編程技術並編寫健壯的代碼?防禦性數據庫編程 - 使用T-SQL的健壯代碼?
回答
- Simple Talk ...
- ... books
- SQL Server Central
- Alexander Kuznetsov(誰是SO用戶AlexKuznetsov)
更普遍
- 下站在TRY..CATCH and error handling
- 數據類型安全(無數量比較反對爲nvarchar例如)
- 瞭解交易
- 考慮存儲過程
- 瞭解SQL注入
IF EXISTS()
是我應該在T-SQL中經常使用的東西。很多時候,開發人員編寫SQL代碼時,他們不會像編寫常規代碼時那樣考慮異常和錯誤。
不要害怕RAISEERROR要麼給你無效的輸入例如。這可以像託管代碼中的ArgumentException一樣使用,以將問題發回給調用者,而不僅僅是打破或返回損壞的結果。 – TheCodeKing 2010-09-22 22:32:01
要添加什麼斯科特說:
- 使用SQL Server現在支持的TRY/CATCH
- 驗證你的程序的參數和使用RAISERROR當事情不通過
- 使用交易(小心)
謹慎給我們提供一些關於交易的詳細信息? – rebelliard 2010-09-22 20:16:51
小心,我的意思是不要簡單地在開始事務...提交事務中包裝整個過程。考慮一下需要交易的東西 – 2010-09-22 20:32:23
@Rafael Belliard:遲到,早點完成。從不築巢。 SET XACT_ABORT ON – gbn 2010-09-22 20:36:53
要考慮心理角度你的問題,你可能會發現DBA Survival Skills – Think Defensively是有趣的閱讀。
除了其他人所說的之外,還要強制數據庫中的數據完整性!
- 1. 健壯的代碼框架?
- 2. 使代碼更健壯(jQuery)
- 3. .Net 2.0的代碼合同和防禦性編程庫?
- 4. VBA優化健壯代碼
- 5. VBA:健壯的數據庫創建
- 6. 防禦性數據庫編程 - 我應該使用Singleton模式嗎
- 7. 改善setValueForKeyPath的健壯性
- 8. 防禦性編程和異常處理
- 9. 防禦性編程:Java中的指導
- 10. Erlang的非防禦性編程
- 11. perl防禦性編程(die,assert,croak)
- 12. 健壯性原則和API
- 13. iPhone 4.0屏幕分辨率和編寫健壯的代碼
- 14. 如何使用.NET/C#進行健壯的SerialPort編程?
- 15. 該代碼還可以針對防禦性編程進行優化嗎?
- 16. 控制服務的防禦代碼
- 17. 使這個httpHandler更健壯?
- 18. 健壯性的最佳實踐
- 19. 編寫一個健壯的DBAdapter類
- 20. 如何使健壯的斷言?
- 21. 實踐防禦性編程的程度如何?
- 22. 健壯的軌道CMS
- 23. 如何使用用戶輸入使健壯性發揮作用?
- 24. 安全/健壯地使用AdjustTokenPrivileges?
- 25. swaping集防禦性副本
- 26. 關於如何編寫健壯的數據傳輸過程的建議?
- 27. 針對惡意攻擊的防禦性編程
- 28. 健壯的se。 (vcovHC)在R
- 29. 數子類的防禦性複製
- 30. 使用具有相同簽名的不同類用於防禦性編程
+1您的編輯出現在我按下按鈕時。 – 2010-09-22 20:13:34
@Mike Forman:ta。我們還可以提到更多! – gbn 2010-09-22 20:15:04