2013-09-01 74 views
-3

一書中的問題問以下內容:通過使用同一種邏輯,你在使用 查詢的Microsoft SQL Server 2012 70-461書

測試檢查約束CHK_Products_unitpriceProduction.Products表第2課練習。嘗試插入所有有效的 列的新行,但使用-10的負單位價格。刪除檢查 約束。重試插入。嘗試將檢查約束返回 添加到表中。更新插入的行,使其具有積極的 單位價格。現在嘗試將檢查約束添加回表中。 如果 沒有行,您是否可以將檢查約束添加回表中?爲什麼?

我很困惑它在問什麼?當然,你應該能夠添加一個constarint,當所有的行都打破約束?

感謝

回答

1

基本上這只是說,你只能添加一個檢查約束的表,如果沒有其現有的記錄將不能在該約束的迂迴的方式。

在這種情況下,您有檢查約束條件,說單位價格必須是正數。這似乎是明智的,否則你會付錢給人們購買產品!

因此,如果您的表格中的所有單位價格都是正數,則可以添加約束條件。但是,如果一個或多個單位價格爲負數,SQL Server不會讓您添加約束條件(因爲您基本上說「我們知道這對於所有數據都是正確的」,而不是事實)。

本書中問題的最後一點是詢問如果表中沒有數據行,是否可以添加約束。這與詢問您是否可以添加該約束(如果它不與現有數據衝突)相同,我們已經知道該數據的答案。

相關問題