在SQL Server中使用检查约束来验证数据
2009-05-09 10:28:44 来源:WEB开发网创建多个字段约束
你没有必要创建只能检查一个单独字段的值的约束。你可以创建一次检查多个字段中的值的约束。例如,如果我想创建一个检查上面所创建的Salary和SalaryType约束的单独约束,那么可以使用下面的代码:
ALTER TABLE dbo.Payroll WITH NOCHECK
ADD CONSTRAINT CK_Payroll_Salary_N_SalaryType
CHECK (SalaryType in ('Hourly','Monthly','Annual')
and Salary > 10.00 and Salary < 150000.00);
这个单独约束所做的事情和上面两个约束一样。记住,当你这么做时,要了解是SalaryType 、Salary 还是两个字段都违反了你的检查约束就更很困难了。.
前一个例子的另一个方法是在不只一个的字段中使用这个值,从而确定某一指定字段值是否是有效的。例如,假设我想确保当我输入一个“Hourly” SalaryType时,我希望Salary小于$100.00,或输入“Monthly” SalaryType时,Salary不超过$10,000,而当输入一个“Annual” SalaryType时任何Salary数值都可以。要实现这个约束,我使用下面的ADD CONSTRAINT子句:
ALTER TABLE dbo.Payroll WITH NOCHECK
ADD CONSTRAINT CK_Payroll_SalaryType_Based_On_Salary
CHECK ((SalaryType = 'Hourly' and Salary < 100.00) or
(SalaryType = 'Monthly' and Salary < 10000.00) or
(SalaryType = 'Annual'));
这里,我将多个字段条件一起使用并使用一个“or”条件来分隔它们,所以我的检查约束可以验证每个不同的SalaryType的Salary数量。
- ››sql server自动生成批量执行SQL脚本的批处理
- ››使用linux中的quota教程
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
- ››使用jxl生成带动态折线图的excel
- ››SQL SERVER无法安装成功,sqlstp.log文件提示[未发...
- ››Sql Server中通过父记录查找出所有关联的子记录
- ››SqlServer触发器、存储过程和函数
- ››SQL Server 中的事务(含义,属性,管理)
- ››Sqlite数据库插入和读取图片数据
更多精彩
赞助商链接