首页 相关文章 使用CHECK约束执行业务规则

使用CHECK约束执行业务规则

  如果你不熟悉CHECK约束,那么习惯上它们通过限制插入到一个字段中的值来执行字段域完整性。我发现CHECK约束很不幸地被用于大多数的数据模型中。在大多数的案例中,我看到使用触发器来执行业务规则,而这本来是应该用一个CHECK约束来执行的。我个人使用CHECK而不是触发器是基于很多个原因的。首先,我不需要浪费时间来写专门的代码。另外,CHECK约束是在数据库修改通过数据库引擎完成之前执行的,然而触发器是事故发生后检查的。使用触发器延长了一个事务的生命,如果检测到一个回滚事件那么代价可能是昂贵的。

  SQL Server允许你定义检查单独字段完整性的字段级别的CHECK约束。此外,SQL Server允许你使用一个表级别CHECK约束来检查多个字段的值。虽然它们被归类为表级别约束,但是这些CHECK约束的类型实际上是在行级别上检查的。最后,CHECK约束通过检查一个定义好的情形来看它的值为TRUE还是FALSE。

  让我们来看看一些例子。我将建立一张示例表EMPLOYEE。作为表定义的一部分,我们将执行一个公司规则:在我们的系统中没有一个员工被允许赚取超过$100,000或者少于$30,000。

   CREATE TABLE DBO....[ 查看全文 ]

2016-02-19 标签:

使用CHECK约束执行业务规则的相关文章

手机页面
收藏网站 回到头部