使用检查约束验证SQLServer中的数据.docVIP

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
使用检查约束验证SQLServer中的数据.doc

  使用检查约束验证SQL Server中的数据教育资源库   有许多校验数据和业务规则是否匹配的方法,在应用程序代码中可以强制实施数据校验,也可以由数据库引擎执行数据校验。根据校验的方法不同,规则需求将确定你的应用程序该如何正确地以及该在哪里校验数据,本文将向你介绍如何使用数据库检查约束校验SQLServer中的数据。   什么是检查约束?   检查约束是一个识别SQLServer表中每行可接受的列值的规则,检查约束帮助实施域的完整性,域完整性定义了数据库表中列的有效值,检查   约束可以验证单列的域完整性,也可以验证多列的域完整性,在单个列上可以有多个检查约束,如果插入或更新的数据违反了检查约束,数据   库引擎将暂时停止INSERT和UPDATE操作。   检查约束由逻辑表达式构成,逻辑表达式可能是单个表达式,如Salarylt;200000.00,也可能是多个表达式,如RentalDategt;GETDATE   ()andRentalDate   中的数据,检查约束是基于列的,因此,即便表中某列的检查约束没有通过,也不会影响到表中其它列的INSERT和UPDATE操作,检查约束可以在列级创建,也可以在表级创建。   在CREATETABLE语句中创建检查约束   创建检查约束的一个方法就是在创建表的时候创建,下面是一个简单的CREATETABLE脚本,它包含了创建一个检查约束的代码: CREATETABLEdbo.Payroll   ( IDintPRIMARYKEY, PositionIDINT, SalaryTypenvarchar(10), Salarydecimal(9,2) CHECK(Salarylt;150000.00) );   这里的CHECK子句关联了Salary列,这是一个列级的约束,如果你创建了一个列级约束,你只能在检查约束的逻辑表达式中使用列名,这里的检查约束列就只允许Salary列的值小于150000。创建这个表时也会创建CHECK约束,约束名由系统自动生成,如果你想在CREATETABLE操作时命名你的检查约束,代码就可以变成下面这样: CREATETABLEdbo.Payroll   ( IDintPRIMARYKEY, PositionIDINT, SalaryTypenvarchar(10), Salarydecimal(9,2) CONSTRAINTCK_Payroll_SalaryCHECK(Salarylt;150000.00) );   这里我将检查约束命名为CK_Payroll_Salary了。   上面的例子都仅在单个列上创建了检查约束,而且也只有一个条件,其实检查约束表达式可以包括多个条件,下面就是一个包含多个条件的检查约束: CREATETABLEdbo.Payroll ( IDintPRIMARYKEY, PositionIDINT, SalaryTypenvarchar(10), Salarydecimal(9,2) CONSTRAINTCK_Payroll_Salary CHECK(Salarygt;10.00andSalarylt;150000.00) );   如果要让SQLServer拒绝一条记录,那在检查约束逻辑表达式的最终输出中需要计算为FALSE,因此,在这个例子中,检查约束会验证Salary大于10且小于150000,这两个条件中任意一个检查结果返回FLASE,都会直接拒绝Payroll表中对行的INSERT或UPDATE请求,提示也会显示一条错误消息。   如果你想创建一个表级检查约束,你可以使用下面的代码: CREATETABLEdbo.Payroll ( IDintPRIMARYKEY, PositionIDINT, Salarydecimal(9,2), SalaryTypenvarchar(10), CHECK(Salarygt;10.00andSalarylt;150000.00) );   在这里我创建了单个表级约束,检查Salary列,但可以使用表中的任意列,因为这是一个表级检查,注意CHECK子句将会引起SQLServer生成一个检查约束名,因为我没有手动为其命名。   在现有表上创建检查约束   有时,在你设计和创建好表后,你可能想要在表上放一个检查约束,你可以使用ALTERTABLE语句来实现,下面是一个例子: ALTERTABLEdbo.Payroll onthly#39;,#39;Annual#39;));   我在这里的创建检查约束将会检查Payroll表中SalaryType列的值为Hourly,Monthly或Annual的所有记录,我还给这个检

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档