Overcoming Integer Limits in Business Central with BigInteger
Business Central's integer data type maxes out at 2.1 billion records, a limit some implementations have hit. AL Version 18 (Business Central 2026 Wave 1) now supports migrating integer fields to BigInteger, which extends the range to 9.2 quintillion values, with compiler warnings to prevent overflow issues.

post Aardvark Labs
"Changing an existing table field from Integer to BigInteger is now supported when targeting runtime version 18.0 (Fall 2026) or later."
Key points
- Integer in Business Central AL is a signed 32-bit type limited to about 2.1 billion positive values when used as a row ID
- BigInteger is a signed 64-bit type supporting 9.2 quintillion values, solving the capacity problem for large datasets
- Data type changes from Integer to BigInteger were unsupported until AL Version 18, which now permits gradual migration with new AppSourceCop rule warnings
- The compiler emits warnings for narrowing conversions (BigInteger to Integer) to alert developers about potential overflow risks
Quotes
- “Changing an existing table field from Integer to BigInteger is now supported when targeting runtime version 18.0 (Fall 2026) or later.” (This is the key enabler for solving the 2.1 billion record limit that some implementations have already hit.)
- “The compiler now supports gradual migration between Integer and BigInteger field types.” (Gradual migration means existing systems can transition without complete rewrites, reducing implementation risk.)
- “Many Business Central implementation have hit that limit.” (Confirms that the integer overflow problem is a real issue affecting current customers, not a theoretical concern.)
Context
- Features: BigInteger field migration, Integer to BigInteger conversion, AppSourceCop rule AS0141, CalcFormula support for BigInteger, Property context warnings
- Versions: AL Version 18, Business Central 2026 Wave 1, runtime version 18.0
Source: Aardvark Labs, community blog. Summary, key points and quotes are derived (CONTENT-NOTICE.md); read the original for the full text.