我注意到一些奇怪的行为导致了算术溢出错误。
我有一个表(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的名称相同。他们甚至存储了相同的值...任何帮助将不胜感激!