SQL CHECK约束表达式 就比如 sex列名中的 性别,只能填写"男"或"女"

SQL CHECK约束表达式 就比如 sex列名中的 性别,只能填写"男"或"女",第1张

进入设计表,右键,选择“CHECK 约束”,新建约束,“sex=‘男'”或"sex='女'就行了!

不知道性别列的列名是什么,这里假设为psex,所以其check约束表达式为:

psex = '男' or psex = '女'

注意:单引号必须为英文半角的。

使用
计算列
的处理方式来处理。
下面是
例子
sql
代码
1>
2>
create
table
#test
(
3>
a
int,
b
int,
c
as
a+b
4>
)
5>
go
1>
insert
into
#test
(a,b)
values(1,
2)
2>
insert
into
#test
(a,b)
values(3,
4)
3>
go
(1
行受影响)
1>
select

from
#test
2>
go
a
b
c
-----------
-----------
-----------
1
2
3
3
4
7
(2
行受影响)

use ebook
create table testcheck
(
time1 datetime ,
time2 datetime ,
constraint time1_time1 check(datediff(day,[time1],[time2]) > 0)
)
这样就可以了,让time2>time1这个相当于ACCESS中的记录级有效性验证但是奇怪,SQLSERVER中从没提出过字段级约束和记录级约束之类的概念,但它的作用和字段级有效性规则及记录级有效性规则类似。
如果你说的两个时间来自不同的表,那只有用触发器来制度约束了

检查约束首字母为s:
check(col1 like 's%')

检查约束前3位和后8位均为数字字符:
check(col2 like '[0-9][0-9][0-9]%[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')

对这要修改的表点右键。里面有个设计表。点击进去后,对你想加check约束的字符点右键有个check约束。进去后在框里面输入 (字符名称) like "[0-9][0-9][0-9][0-9]_[0-9][0-9][0-9]",保存后即可!

use
ebook
create
table
testcheck
(
time1
datetime
,
time2
datetime
,
constraint
time1_time1
check(datediff(day,[time1],[time2])
>
0)
)
这样就可以了,让time2>time1这个相当于access中的记录级有效性验证但是奇怪,sqlserver中从没提出过字段级约束和记录级约束之类的概念,但它的作用和字段级有效性规则及记录级有效性规则类似。
如果你说的两个时间来自不同的表,那只有用触发器来制度约束了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13325409.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-15
下一篇 2023-07-15

发表评论

登录后才能评论

评论列表(0条)

保存