У меня проблема с арифметическим переполнением при преобразовании в bigint в SQL Server 2008. Меня смущает следующее.
Это работает:
select 58356453 * 228204732751
Ответ: 13317218761161292203
Но все остальные попытки, связанные с явным преобразованием, заканчиваются неудачей.
select convert(bigint, 58356453 * 228204732751)
результат: арифметическое переполнение
begin
declare @key bigint = 58356453,
@workingVal bigint,
@primeMultiplier1 bigint = 228204732751;
set @workingVal = @key * @primeMultiplier1;
end;
результат: арифметическое переполнение
Что яздесь не хватает?Я также пробовал «приведение (BigNumber как bigint)» (не думаю, что оно отличается от преобразования) и различные комбинации преобразования до / после арифметических операций.
И это на Windows Server 200864