日期:2014-05-17  浏览次数:20517 次

sql server中check约束的建立
在同一张表中建立单价和原价,让单价大于原价的check约束用脚本怎么编写?
------最佳解决方案--------------------

ALTER TABLE 表
ADD CHECK (单价>原价)

------其他解决方案--------------------
create table tb(单价 float,原价 float,check(单价>原价))
------其他解决方案--------------------
create table cost
(tuition money,
bookcost money ,
 constraint tuttion_check check (tuition>bookcost))

------其他解决方案--------------------
引用:
不能在创建表的时候就建立这个check约束吗?

create table tb(a int,b int, check(a>b) )

------其他解决方案--------------------
引用:
在同一张表中建立check约束

是在一张表中啊!只是大家举的例子的表名不同而已
------其他解决方案--------------------
引用:
消息 8141,级别 16,状态 0,第 2 行
表 'aa' 的列 'price' 的列 CHECK 约束引用了另一列。
消息 1750,级别 16,状态 0,第 2 行
无法创建约束。请参阅前面的错误消息。

create table cost
(tuition money,
bookcost money ,
 constraint tuttion_check check (tuition>bookcost))

我运行成功,你试下
------其他解决方案--------------------
引用:
你说我会连这种问题都发现不了吗?问题是创建不了
表 XX 的列 XX 的列 CHECK 约束引用了另一列。

你是列约束当然不行。还没创建完成那时候。要是表约束才可以
------其他解决方案--------------------
引用:
你说我会连这种问题都发现不了吗?问题是创建不了
表 XX 的列 XX 的列 CHECK 约束引用了另一列。

没有那个意思,因为我也试了77哥的语法,也是显示你的问题,
我刚才那个是创建成功,要不你发你的建表语句出来给大家测试一下
------其他解决方案--------------------
不能在创建表的时候就建立这个check约束吗?
------其他解决方案--------------------
在同一张表中建立check约束
------其他解决方案--------------------
消息 8141,级别 16,状态 0,第 2 行
表 'aa' 的列 'price' 的列 CHECK 约束引用了另一列。
消息 1750,级别 16,状态 0,第 2 行
无法创建约束。请参阅前面的错误消息。

------其他解决方案--------------------
你说我会连这种问题都发现不了吗?问题是创建不了
表 XX 的列 XX 的列 CHECK 约束引用了另一列。

------其他解决方案--------------------
好了,问题解决了 谢谢大家
------其他解决方案--------------------
问题解决了,
实在创建表的列后再添加约束才行的。

------其他解决方案--------------------
引用:
引用:
你说我会连这种问题都发现不了吗?问题是创建不了
表 XX 的列 XX 的列 CHECK 约束引用了另一列。

没有那个意思,因为我也试了77哥的语法,也是显示你的问题,
我刚才那个是创建成功,要不你发你的建表语句出来给大家测试一下

create table tb(a int  check(a>b) ,b int)
如果当成列约束当然会出错的。比如写到如上的地方。
------其他解决方案--------------------