书中的一个问题是:
测试中的检查约束
CHK_Products_unitprice
Production.Products
表使用您使用的相同逻辑 在第2课练习中。尝试插入一个全部有效的新行 列,但使用-10的负单位价格。放下支票 约束。重试插入。尝试添加检查约束 进入表格。更新插入的行,使其具有正数 单价。现在尝试将检查约束添加回表中。 如果,您是否能够将检查约束添加回表中 没有行?为什么呢?
我很困惑它在问什么?当然,当所有行都破坏约束时,你应该能够添加一个constarint吗?
由于
答案 0 :(得分:1)
基本上这只是一种说法,如果没有任何现有记录会使该约束失败,你只能在表中添加一个检查约束。
在这种情况下,您有一个检查约束,表示单价必须为正数。这似乎是明智的,否则你会付钱给人们拿产品!
因此,如果表中的所有单价都是正数,则可以添加约束。但是,如果一个或多个单位价格为负数,SQL Server将不允许您添加约束(因为您基本上说"我们知道这对于所有数据都是正确的"关于某些内容不是真的。)
本书中问题的最后一点是询问,如果表中没有数据行,您是否能够添加约束。这与询问是否可以添加约束条件相同,如果它与现有数据不冲突,我们已经知道答案。