2013-09-01 58 views
-3

一书中的问题问以下内容:通过使用同一种逻辑,你在使用 查询的Microsoft SQL Server 2012 70-461书

测试检查约束CHK_Products_unitpriceProduction.Products表第2课练习。尝试插入所有有效的 列的新行,但使用-10的负单位价格。删除检查 约束。重试插入。尝试将检查约束返回 添加到表中。更新插入的行,使其具有积极的 单位价格。现在尝试将检查约束添加回表中。 如果 没有行,您是否可以将检查约束添加回表中?为什么?

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

感谢

回答

1

基本上这只是说,你只能添加一个检查约束的表,如果没有其现有的记录将不能在该约束的迂回的方式。

在这种情况下,您有检查约束条件,说单位价格必须是正数。这似乎是明智的,否则你会付钱给人们购买产品!

因此,如果您的表格中的所有单位价格都是正数,则可以添加约束条件。但是,如果一个或多个单位价格为负数,SQL Server不会让您添加约束条件(因为您基本上说“我们知道这对于所有数据都是正确的”,而不是事实)。

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