求知: 在SQL Server 中对一个列名进行取值范围的约束,如对sex只能输入男或女,简单明了即可。


1> create table #test( sex varchar(2) check (sex in ('男', '女')))
2> go

1> insert into #test values ('男')
2> go
(1 行受影响)

1> insert into #test values ('女'唯闭含)
2> go
(1 行受影响)

1> insert into #test values ('其态橡')

2> go
消息 547,级别 16,状态 1,服务器 TESTPC\SQLEXPRESS,第 1 行
INSERT 语句与 CHECK 约束"CK__#test________sex__023D5A04"冲突。该指笑冲突发生于数据库
"tempdb",表"dbo.#test__________________________________________________________
_____________________________________________________000000000002", column 'sex'

语句已终止。
--为什猜春盯么不直接这样?
create table tablename
(
sex nchar(1) check (sex = '男'穗和 or sex = '女森则')
)