2011-04-21 29 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