在应用程序开发中有一个防御性编程的概念。如何使用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. 防御性编程和异常处理
- 6. 防御性编程:Java中的指导
- 7. Erlang的非防御性编程
- 8. 健壮性原则和API
- 9. iPhone 4.0屏幕分辨率和编写健壮的代码
- 10. 如何使用.NET/C#进行健壮的SerialPort编程?
- 11. 该代码还可以针对防御性编程进行优化吗?
- 12. 控制服务的防御代码
- 13. 使这个httpHandler更健壮?
- 14. 健壮性的最佳实践
- 15. 编写一个健壮的DBAdapter类
- 16. 如何使用用户输入使健壮性发挥作用?
- 17. 安全/健壮地使用AdjustTokenPrivileges?
- 18. swaping集防御性副本
- 19. 关于如何编写健壮的数据传输过程的建议?
- 20. 针对恶意攻击的防御性编程
- 21. YQL xpath不够健壮
- 22. 健壮的CNN培训
- 23. 防御性编程还是浪费时间?
- 24. Python - 关键错误的防御性编程
- 25. 防御性编程是否违反DRY原则?
- 26. 早期回报测试(防御性编程)
- 27. PHP中的健壮目录管理器
- 28. R或Heroku上的其他健壮的Ruby数学库?
- 29. 使PL/SQL代码健全
- 30. 什么是用JavaScript编程ASP.NET的最有效和最健壮的方式?
+1您的编辑出现在我按下按钮时。 – 2010-09-22 20:13:34
@Mike Forman:ta。我们还可以提到更多! – gbn 2010-09-22 20:15:04