2008-12-19 27 views

回答

19
ALTER TABLE Table 
ADD CONSTRAINT CK_Table_Column_Range CHECK (
    Column >= 0 AND Column <= 100 --Inclusive 
) 
+0

如果您使用其他答案中提到的BETWEEN 0 AND 100,則SQL Server Management Studio會將其轉換爲([column]> =(0)AND [column] <=(100))`if您正在使用GUI來創建它。 – 2015-10-16 14:12:00

3

檢查約束,如「fieldname BETWEEN 0 AND 100」應該這樣做。

2

嘗試:

ALTER TABLE myTableName 
ADD CONSTRAINT myTableName_myColumnName_valZeroToOneHundred 
CHECK (myColumnName BETWEEN 0 AND 100) 

此檢查是包容性 - 這裏是約之間的一些信息,從MSDN: BETWEEN (Transact SQL)

1

據對我來說,正確的問題不是「怎樣」,而是「爲什麼」。

這個0-100規則聽起來像是一個商業規則。爲什麼它應該在服務器/數據庫端實現?如果輸入的值不正確,誰會收到錯誤信息?

如果用戶收到錯誤消息,讓代碼在事務到達服務器之前給他提供消息是不是更容易?

怎麼樣的範圍修改?規則會改變嗎?我想是的:規則總是改變。範圍可以從0-100更新到101-200?在這種情況下,數據庫中已經輸入的值是什麼?

相關問題