SQL中的check约束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中的check约束相关的知识,希望对你有一定的参考价值。

我在Face表里面的TType字段,我想把它设置为只能输入‘帅哥’和‘靓女’我用SQL 2000的企业管理器里面属性-check约束
然后输入[color=#FF6600]TType ='帅哥'or TType ='靓女'[/color]可是系统一直提示有错?
怎样解决 哪里错了?请高手指教

alter table Face alter columns ttype varchar(4)
--改变数据类型为可变普通字符串型
alter table Face add constraint MyCheck check(ttype in('帅哥','靓女'))追问

服务器: 消息 547,级别 16,状态 1,行 1
ALTER TABLE 语句与 COLUMN CHECK 约束 'CK_Face' 冲突。该冲突发生于数据库 'BBS',表 'Face', column 'TType'。还有错误

追答

alter table face drop constraint CK_Face
--删除原先的约束CK_Face
alter table Face alter columns ttype varchar(4)
--改变数据类型为可变普通字符串型
alter table Face add constraint MyCheck check(ttype in('帅哥','靓女'))

参考技术A 查询分析器中输入下面命令执行。
alter table Face
add constraint check_name check (TType ='帅哥'or TType ='靓女')追问

我的TType的数据类型为text 提示有误:不能在类型为 CHECK 的列上创建类型为 TEXT 的约束。怎么办?

追答

alter table face
alter column TType char(4)
go
alter table Face
add constraint check_name check (TType ='帅哥'or TType ='靓女')

以上是关于SQL中的check约束的主要内容,如果未能解决你的问题,请参考以下文章

mysql check 约束

SQL CHECK 约束

SQL CHECK 约束:使用方法及撤销方法剖析

如何在SQL表中的性别进行check约束?

哪些 SQL 数据库支持 CHECK 约束中的子查询?

SQLServer中的check约束