-3

书中的一个问题提出以下问题:

使用您在第 2 课练习中使用的相同类型的逻辑来测试表CHK_Products_unitprice中 的检查约束。Production.Products尝试插入包含所有有效列的新行,但使用负单价 -10。删除检查约束。重试插入。尝试将检查约束添加回表中。更新插入的行,使其具有正单价。现在尝试将检查约束添加回表中。如果没有行,您能否将检查约束添加回表中?为什么?

我很困惑它在问什么?当然,当所有行都打破约束时,您应该能够添加一个约束?

谢谢

4

1 回答 1

1

基本上,这只是一种迂回的说法,即您只能在表的现有记录都不会失败该约束的情况下向表添加检查约束。

在这种情况下,您有一个检查约束来说明单价必须为正。这似乎是明智的,否则你会付钱让人们接受产品!

因此,如果表中的所有单价都是正数,则可以添加约束。但是,如果一个或多个单价为负数,SQL Server 将不允许您添加约束(因为您基本上是在说“我们知道这对所有数据都是正确的”关于不正确的事情)。

书中最后一个问题是询问如果表中没有数据行,是否可以添加约束。这与询问是否可以添加与现有数据不冲突的约束相同,我们已经知道答案。

于 2013-09-01T10:33:58.513 回答