jeffluo 发表于 2016-8-9 12:23:49

INT與BIGINT的使用時機

本帖最后由 jeffluo 于 2016-8-9 15:11 编辑

某些時候,大家都會想說使用INT就可以解決一些數字編號,這幾天碰到一個狀況,過程中讓我思考幾分鐘,最後找出原來就是自己計算過程中,使用INT所導致,值得分享給大家,避免這樣狀況發生。另外,有關IDENTITY設定資料型別時候,如果空間允許且預期會產生很多自動加號的狀況,也建議使用BIGINTdeclare @intermediate varbinary(8)
SET @intermediate= cast(cast(0x00000C000803508F as INT) & 0x40000000000 as binary(8))
--使用INT會造成無法正確計算
select @intermediate
GO
declare @intermediate varbinary(8)
SET @intermediate= cast(cast(0x00000C000803508F as bigint) & 0x80000000000 as binary(8))
--使用BIGINT正確計算
select @intermediate
GO
页: [1]
查看完整版本: INT與BIGINT的使用時機