防御性数据库编程-使用T-SQL编写健壮的代码?

3

在应用程序开发中,有一个叫做防御式编程的概念。如何使用Transact-SQL实现防御式编程技术并编写健壮的代码?

5个回答

5

2

补充一下Scott说的:

  • 使用SQL Server支持的TRY/CATCH
  • 验证过程参数,当参数不合法时使用RAISERROR
  • 谨慎使用事务

能否详细介绍一下交易中“小心谨慎”的方面? - rebelliard
1
我所说的小心谨慎,是指不要简单地将整个过程包装在begin transaction ... commit transaction中。请考虑哪些部分需要进行事务处理,并相应地进行处理。 - Mike Forman
1
@Rafael Belliard:晚开始,早结束。不要嵌套。SET XACT_ABORT ON。 - gbn

1
IF EXISTS()

我认为在T-SQL中应该更经常使用异常处理。很多时候,开发人员编写SQL代码时并不像编写常规代码那样考虑异常和故障。


如果你收到无效的输入,也不要害怕使用RAISEERROR。这可以像托管代码中的ArgumentException一样使用,将问题传递回调用者,而不仅仅是中断或返回损坏的结果。 - TheCodeKing

1

0
除了其他人说的,还要在数据库中强制执行数据完整性!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接