WEB开发网
开发学院数据库MSSQL Server 使用检查约束验证SQL Server中的数据 阅读

使用检查约束验证SQL Server中的数据

 2009-04-16 10:27:11 来源:WEB开发网   
核心提示: CREATETABLEdbo.Payroll(IDintPRIMARYKEY,PositionIDINT,SalaryTypenvarchar(10),Salarydecimal(9,2)CONSTRAINTCK_Payroll_SalaryCHECK(Salary<150000.0

CREATETABLEdbo.Payroll
 

(

IDintPRIMARYKEY,

PositionIDINT,

SalaryTypenvarchar(10),

Salarydecimal(9,2)

CONSTRAINTCK_Payroll_SalaryCHECK(Salary<150000.00)

);

这里我将检查约束命名为CK_Payroll_Salary了。

上面的例子都仅在单个列上创建了检查约束,而且也只有一个条件,其实检查约束表达式可以包括多个条件,下面就是一个包含多个条件的检查约束:

CREATETABLEdbo.Payroll

(

IDintPRIMARYKEY,

PositionIDINT,

SalaryTypenvarchar(10),

Salarydecimal(9,2)

CONSTRAINTCK_Payroll_Salary

CHECK(Salary>10.00andSalary<150000.00)

);

如果要让SQLServer拒绝一条记录,那在检查约束逻辑表达式的最终输出中需要计算为FALSE,因此,在这个例子中,检查约束会验证Salary大于10且小于150000,这两个条件中任意一个检查结果返回FLASE,都会直接拒绝Payroll表中对行的INSERT或UPDATE请求,提示也会显示一条错误消息。

如果你想创建一个表级检查约束,你可以使用下面的代码:

CREATETABLEdbo.Payroll

(

IDintPRIMARYKEY,

PositionIDINT,

Salarydecimal(9,2),

SalaryTypenvarchar(10),

CHECK(Salary>10.00andSalary<150000.00)

);

在这里我创建了单个表级约束,检查Salary列,但可以使用表中的任意列,因为这是一个表级检查,注意CHECK子句将会引起SQLServer生成一个检查约束名,因为我没有手动为其命名。

上一页  1 2 3 4 5  下一页

Tags:使用 检查 约束

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接