SQL 同一张表中几个字段间的约束怎么实现?

[复制链接]
查看11 | 回复2 | 2009-4-27 21:29:50 | 显示全部楼层 |阅读模式
在SQL Server 2000 中,有一张表叫作A表,其中的字段有ID,Name(商品名),price(单价),Num(数量),TotalPrice(金额)。我想加一个约束:金额=单价×数量,不管是插入记录还是修改字段都要受到此约束的影响,请问怎么实现?请给出具体代码或者详细步骤。
我没学过约束,像check这样的,也不知道怎么用,可以解释一下么?
check add 只是对插入受约束是吗?可不可以改为这样:check add,update
如果不是在同一张表中,即:表A中没有TotalPrice(金额)字段,而表B中有B_TotalPrice(金额)字段,表B的外键B_ID 是表A的主键ID,约束条件为 B_TotalPrice = (表A中的)price×(表A中的)Num,这又怎么实现呢?

回复

使用道具 举报

千问 | 2009-4-27 21:29:50 | 显示全部楼层
下面的语句就可实现你要的功能: alter table a with check add check not for replication (totalprice=price*num) with check 表示对已存在的数据进行新增的约束检查(就是表中已存在的数据) add check 表示在表中增加约束 not for replication 表示复制数据时,不检查约束; 也就是当你从其他的表中复制到该表中时,不检查. (totalprice=price*num) 表示约束条件 只要是约束有效,当插入记录还是修改字段都要受到此约束的影响. 所以你的理解是错误的.你补充的问题:两个...
回复

使用道具 举报

千问 | 2009-4-27 21:29:50 | 显示全部楼层
你用trigger吧,在插入前金额这一列的值等于单价×数量。很方便的,如何创建trigger你自己找点资料...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行