2 u011314218 u011314218 于 2016.03.11 17:09 提问

菜鸟请教:bigint类型数据赋值给int型时出现溢出

最近在做sqlserver存储过程,其中有这样一段查询,将bigint型数据oid赋值给@ID时出现溢出。
已经看了好几天,怎么改都是溢出,都转换为字符串会有其他错误,,求解答。本人新手上路,希望多多指教。

如图所示,蓝图部分,曾试过convert和cast函数,
图片说明

1个回答

ch21st
ch21st   2016.03.23 17:24

是不是实际的值已经超过int的最大值了。我测试如果值没操作,不会有问题,比如

下面将@i就是int的最大值,再加一就会出错了


DECLARE @i BIGINT =2147483645
DECLARE @j INT
SET @i=POWER( CONVERT(BIGINT, 2),31)-1
SET @j=@i
SELECT @i,@j

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!