将nullable smallint设置为null时的算术溢出错误

时间:2014-05-16 13:28:10

标签: sql sql-server-2008 tsql isnull

我注意到一些奇怪的行为导致了算术溢出错误。

我有一个表(LEAD.table),有两列,MinAge和MaxAge。两者都是可以为空的。我还有一个只返回这些值的视图(dbo.Table)。

Select MinAge, MaxAge
From LEAD.Table

我有一个存储过程在尝试将MaxAge设置为null时出错,但不是MinAge。也就是说,我可以做到这一点......

UPDATE dbo.Table
SET MinAge = NULL
WHERE ID = 1

但是,这给了我一个错误......

UPDATE dbo.Table
SET MaxAge = NULL
WHERE ID = 1

这就是错误:

Arithmetic overflow error for data type smallint, value = 99999.

我不知道发生了什么,但据我所知,MaxAge和MinAge的名称相同。他们甚至存储了相同的值...任何帮助将不胜感激!

0 个答案:

没有答案