- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
在SQLServer中使用检查约束来验证数据.doc
在SQL Server中使用检查约束来验证数据教育资源库
什么是检查约束?
检查约束是一个规则,它确认一个SQL Server表中某条记录中的数据可接受的字段值。检查约束帮助执行域完整性。域完整性定义了一个数据库表中字段的有效值。检查约束可以验证一个单独字段或一些字段的域完整性。你对一个单独的字段可以有多个检查完整性。如果被插入或更新的数据违反了一个检查约束,那么数据库引擎将不允许这个插入或更新的操作发生。
检查约束包括一个逻辑表达式,用以确认什么是有效的表达式。逻辑表达式可能是一个单独的表达式比如Salary lt; 200000.00,或多个表达式,比如RentalDate gt; GETDATE() and RentalDate lt; DATEADD(YY,1,GETDATE())。如果一个逻辑表达式的一个检查约束返回了FALSE值,那么这个检查约束将限制这个表中数据插入或更新。对于逻辑表达式返回的是FALSE以外的值的所有记录将通过这个检查约束并允许记录被更新或插入。为了这个记录能够被插入或更新,与给定INSERT或UPDATE语句相关的所有数据都不能进行检查约束失败(返回一个FALSE值)。检查约束可以在字段级别或表级别被创建。
在一个CREATE TABLE语句上创建检查约束
创建检查约束的一个方法是在表创建时进行。这是一个简单的CREATE TABLE脚本,它创建了一个单独的检查约束:
CREATE TABLE dbo.Payroll
(
ID int PRIMARY KEY,
PositionID INT,
SalaryType nvarchar(10),
Salary decimal(9,2)
CHECK (Salary lt; 150000.00)
);
这里我有一个CHECK 子句,它与Salary字段关联。这是一个字段级别的约束。如果你创建一个字段级别的约束,那么你在你的检查约束的逻辑表达式中只能使用这个字段名称。这个检查约束只允许Salary字段低于$150,000.00。当我的表创建之后,这个CHECK约束也将被创建,并被赋予一个系统生成的约束名称。如果你想在一个CREATE TABLE操作期间命名你的检查约束,那么你可以运行下面的代码:
CREATE TABLE dbo.Payroll
(
ID int PRIMARY KEY,
PositionID INT,
SalaryType nvarchar(10),
Salary decimal(9,2)
CONSTRAINT CK_Payroll_Salary CHECK (Salary lt; 150000.00)
);
这里我命名了我的检查约束CK_Payroll_Salary。
上面的每个例子都创建了一个单独的条件字段检查约束。一个检查约束表达式可以有多个条件。下面是一个例子,它显示了一个有多个条件的检查约束:
CREATE TABLE dbo.Payroll
(
ID int PRIMARY KEY,
PositionID INT,
SalaryType nvarchar(10),
Salary decimal(9,2)
CONSTRAINT CK_Payroll_Salary
CHECK (Salary gt; 10.00 and Salary lt; 150000.00)
);
记住,为了让SQL Server 拒绝一条记录,这个检查约束的逻辑表达式的最终结果需要是FALSE。因此,在这个例子中,这个检查约束验证了一个Salary大于$10.00并小于$150,000.00。当这个检查约束中的这些条件中的任何一个为FALSE,那么在Payroll表中将不会插入或更新一条记录,并会显示一个错误信息。
如果你想创建一个表级别的检查约束,那么你可以运行下面的代码:
CREATE TABLE dbo.Payroll
(
ID int PRIMARY KEY,
PositionID INT,
Salary decimal(9,2),
SalaryType nvarchar(10),
CHECK (Salary gt; 10.00 and Salary lt; 150000.00)
);
这里我创建了一个单独的表约束,它检查Salary字段,但是它不是关联到字段,而是关联
您可能关注的文档
最近下载
- 2024年全国现场流行病学调查职业技能竞赛备考试题库800题(含答案).docx VIP
- 商务数据分析课件_ 商务数据分析基本概念.pptx VIP
- 阅读疗法在高校图书馆的应用研究.docx VIP
- 非急救医疗转运管理规范(2019年版).pdf VIP
- 结直肠癌筛查与早诊早治方案 (2024 年版).pptx VIP
- 《商务数据分析》PPT课件(全).pptx VIP
- 2025农村教师选调进城小学语文试题库(含答案).docx
- 灾害应急救援风险管理.docx VIP
- 2025年广东省现场流行病学调查职业技能竞赛理论参考试题库(含答案).docx VIP
- DB15T 2526-2022 湿地监测技术规程.docx
文档评论(0)