2011-04-21 28 views
2

我使用SQL Server 2008 R2的如何爲SQL服務器列

設定最低值我想設置一個列最小值

列類型是int

我要設定最低值0

所以,如果我-32更新列,應該自動設置列值設置爲0

+0

不知道爲什麼數據庫應該這樣做呢?你不應該在代碼中這樣做嗎? – CoolBeans 2011-04-21 23:01:13

+0

我可以做,但是它更容易,如果數據庫在做:) – MonsterMMORPG 2011-04-21 23:03:25

回答

6

最簡單的解決方法是強制調用代碼更正他們的數據,而不是在插入時奇蹟般地改變它們。要做到這一點,添加一個檢查約束:

Alter Table MyTable 
    Add Constraint CK_MyTable_Col Check (MyCol >= 0) 
+0

所以它是不可能的,使mssql做我想要的? – MonsterMMORPG 2011-04-21 23:01:49

+0

從技術上講,您可以編寫一個觸發器來破解插入的值,但調用代碼會更好,以便它不會嘗試將負值寫入該列。 – Thomas 2011-04-21 23:08:16

+0

好的。我將使用sql語句「case then else end」 – MonsterMMORPG 2011-04-21 23:12:41