Skip to main content
Low-Code Kit

Dataverse Column Types Reference

Complete reference for all Dataverse column types — data types, limits, behaviours, and when to use each.

Last verified: 2026-03-29 dataversecolumnsdata-typesschemareference

Overview

Dataverse offers a rich set of column (field) types for modelling your data. Choosing the right type matters — it affects storage, performance, delegation in Power Apps, available filters in views, and what you can do in Power Automate expressions. This reference covers every column type, its limits, and when to use it.


Text Columns

Single Line of Text

PropertyDetail
Max length4,000 characters (default 100)
FormatsText, Email, URL, Phone, Ticker Symbol, Text Area
SearchableYes (included in Dataverse search by default)
SortableYes
Delegable in Power AppsYes — equality, StartsWith, contains (with Dataverse)
IndexableYes

When to use: Names, titles, short identifiers, email addresses, URLs, phone numbers. Use the Email/URL/Phone formats to get built-in validation and clickable rendering in model-driven apps.

Gotcha: If you set max length to 4,000 and the column is included in Dataverse search, it increases the search index size. Keep the max length realistic for your data.

Multiple Lines of Text

PropertyDetail
Max length1,048,576 characters (1 MB)
FormatsText, Rich Text, Memo
SearchableOnly first 500 characters indexed for search
SortableNo
Delegable in Power AppsLimited — no sorting, limited filtering
IndexableNo

When to use: Descriptions, notes, comments, long-form content. Use Rich Text format if users need basic formatting (bold, lists, links) in model-driven apps.

Gotcha: Rich Text stores HTML markup, which counts towards the character limit. A 500-word note with formatting can easily use 3-4x the characters of plain text.


Number Columns

Whole Number

PropertyDetail
Range-2,147,483,648 to 2,147,483,647
FormatsNone, Duration, Time Zone, Language
SortableYes
DelegableYes — all comparison operators
IndexableYes
Calculated/RollupCan be used in both

When to use: Counts, quantities, integer identifiers, age, scores.

Gotcha: The Duration format stores minutes as an integer but displays as hh:mm. The Time Zone format stores a whole number representing a Windows time zone index.

Decimal Number

PropertyDetail
Range-100,000,000,000 to 100,000,000,000
Precision0 to 10 decimal places
SortableYes
DelegableYes
IndexableYes

When to use: Measurements, percentages, scientific values, any number needing decimal precision that is not currency.

Gotcha: Default precision is 2. Once you increase precision after data exists, existing rows keep their original precision — they are not retroactively reformatted.

Float (Floating Point)

PropertyDetail
Range-100,000,000,000 to 100,000,000,000
Precision0 to 5 decimal places
SortableYes
DelegableYes
IndexableYes

When to use: Similar to Decimal but with less precision. Microsoft recommends Decimal over Float for most scenarios. Float is a legacy type.

Currency

PropertyDetail
Range-922,337,203,685,477 to 922,337,203,685,477
Precision0 to 4 decimal places (default 2)
Auto-createsA read-only “Base” column for exchange rate conversion
SortableYes
DelegableYes
IndexableYes

When to use: Any monetary value. Currency columns automatically integrate with the organisation’s base currency and transaction currency for multi-currency support.

Gotcha: Each currency column creates a hidden _base companion column storing the value in the organisation’s base currency. This doubles the storage per currency field.


Date and Time Columns

Date Only

PropertyDetail
BehaviourUser Local or Date Only
FormatDate only (no time component)
SortableYes
DelegableYes
IndexableYes

Date and Time

PropertyDetail
BehaviourUser Local, Time-Zone Independent, or Date Only
FormatDate + time
SortableYes
DelegableYes
IndexableYes

Behaviour Modes Explained:

BehaviourStored AsDisplayed AsUse Case
User LocalUTCConverted to user’s time zoneMeeting times, deadlines
Time-Zone IndependentRaw value, no conversionExactly as enteredBirthdays, policy effective dates
Date OnlyDate without timeDate onlyDue dates, hire dates

Critical warning: You cannot change the behaviour mode after creation if the column contains data. Plan this carefully before deployment.


Relationship Columns

Lookup

PropertyDetail
TypeMany-to-one reference to another table
SortableYes (by primary name of related record)
DelegableYes — filter by lookup value
IndexableAutomatically indexed
Cascade behavioursAssign, Share, Unshare, Reparent, Delete

When to use: Anytime you need to reference a record in another table — customers on an order, managers on an employee, categories on a product.

Gotcha: Each lookup column creates a relationship. You can have up to 500 relationships per table. Polymorphic lookups (Customer, Owner) reference multiple tables from a single column but are more complex to work with in Power Apps.

Many-to-Many

Not a column type per se — it creates an intersection table behind the scenes. Useful when records in both tables can relate to multiple records in the other (e.g., students and courses).


Choice Columns

Choice (Single Select)

PropertyDetail
OptionsUp to 2,000 options per choice
Stored asInteger value + label
SortableYes (by label)
DelegableYes
IndexableYes
Global vs LocalCan use a global choice (shared) or local (table-specific)

When to use: Status fields, categories, types — any fixed list of options where users pick exactly one.

Choices (Multi-Select)

PropertyDetail
OptionsUp to 2,000 options
Stored asComma-separated integer values
SortableNo
DelegableLimited — contains only
IndexableNo

When to use: Tags, skills, categories where multiple selections are valid.

Gotcha: Multi-select choices are harder to filter, sort, and report on. If you need robust querying, consider a many-to-many relationship with a separate options table instead.


Yes/No (Boolean)

PropertyDetail
Stored asBit (0 or 1)
LabelsCustomisable (e.g., Active/Inactive, Yes/No, True/False)
DefaultYou must set a default value
SortableYes
DelegableYes
IndexableYes

When to use: Flags, toggles, binary states. Keep it simple — if you might need a third state later, use a Choice column instead.


File and Image Columns

File

PropertyDetail
Max size10 GB per file (configurable, default 32 MB)
Stored inAzure Blob Storage (managed by Dataverse)
Multiple filesOne file per column per row
SearchableNo (file contents not indexed)

When to use: Document attachments, PDF uploads, spreadsheet imports.

Image

PropertyDetail
Max size30 MB
FormatsJPG, PNG, GIF, BMP
ThumbnailAuto-generated, configurable size
Primary imageOne column per table can be the primary image (shown in views)

When to use: Profile photos, product images, logos. For document storage, use File instead.

Gotcha: Image columns store a thumbnail in the row data and the full image in blob storage. This means the thumbnail is fast to load in galleries, but the full image requires an additional API call.


Computed Columns

Formula

PropertyDetail
LanguagePower Fx
Real-timeYes — calculated on read, always current
Can referenceColumns in the same table only
SortableDepends on output type
DelegableYes (evaluated server-side)

When to use: Derived values that must always be current — full name from first + last, age from date of birth, status labels.

Example formula:

If(ThisRecord.'Due Date' < Now(), "Overdue", "On Track")

Calculated

PropertyDetail
LanguageWorkflow expression editor (not Power Fx)
RecalculationEvery 24 hours + on record retrieval
Can referenceSame table columns + related table columns (one level)
SortableYes
DelegableYes

When to use: Values that involve related table lookups or where the 24-hour refresh cycle is acceptable.

Gotcha: Calculated columns are not real-time. If the source data changes, the calculated value may be stale for up to 24 hours. For real-time needs, use Formula columns.

Rollup

PropertyDetail
FunctionsSUM, COUNT, MIN, MAX, AVG
RecalculationEvery hour (configurable, minimum 1 hour)
Can referenceRelated tables via one-to-many relationships
SortableYes
DelegableYes

When to use: Aggregations over child records — total order value, count of related tasks, average rating.

Gotcha: Rollup columns have a Last calculated timestamp visible in model-driven apps. Users can click the refresh icon to force recalculation. The hourly cycle means dashboards may show slightly stale totals.


Auto-Number

PropertyDetail
FormatPrefix + number + suffix (e.g., CASE-{SEQNUM:5}-{DATEFULL})
Tokens{SEQNUM:n} (sequential), {RANDSTRING:n} (random), {DATEFULL}, {DATECOMPACT}
EditableNo — auto-generated on create, cannot be modified
SortableYes
DelegableYes

When to use: Case numbers, ticket IDs, invoice numbers — any human-readable unique identifier. Do not use as primary key; Dataverse already generates a GUID primary key.

Gotcha: The sequence resets if you delete and recreate the column. It does not reuse numbers from deleted records.


Column Type Decision Matrix

Use this table to pick the right column type quickly:

ScenarioRecommended TypeWhy
Person’s nameSingle Line of Text (100 chars)Short, searchable, sortable
Long descriptionMultiple Lines (Plain or Rich)Supports large content
Quantity/countWhole NumberInteger, full delegation
Price/costCurrencyMulti-currency support, base conversion
Percentage (0-100)Decimal (precision 2)More reliable than Float
Due dateDate Only (Date Only behaviour)No time zone confusion
Meeting timeDate and Time (User Local)Auto-converts to user’s zone
BirthdayDate Only (Time-Zone Independent)Must not shift with zones
StatusChoiceFixed options, good filtering
TagsChoices (multi-select) or M:N relationshipM:N if you need reporting
Active/inactive flagYes/NoSimple boolean
Reference to another recordLookupCreates relationship
Document attachmentFileUp to 10 GB
Unique case numberAuto-NumberAuto-generated, sequential
Derived value (real-time)FormulaAlways current
Aggregate of childrenRollupSUM/COUNT/AVG/MIN/MAX

Indexing and Performance Considerations

  • Dataverse automatically indexes the primary key (GUID), primary name column, and lookup columns.
  • You can create custom indexes on up to 3 columns (composite index).
  • Columns used frequently in filters, sorts, or views should be indexed.
  • Multiple Lines of Text, Choices (multi-select), File, and Image columns cannot be indexed.
  • Each table supports up to 20 custom indexes.
  • Over-indexing slows down write operations. Index only columns you actively filter or sort on.

Delegation Considerations in Power Apps

Delegation determines whether filtering and sorting happens on the server (good) or in the app (limited to 500/2,000 rows). Here is a quick summary by column type:

Column TypeFilter DelegableSort DelegableNotes
Single Line of TextYesYesStartsWith, =, <>
Multiple LinesLimitedNoEquality only
Whole NumberYesYesAll comparison operators
Decimal / FloatYesYesAll comparison operators
CurrencyYesYesAll comparison operators
Date/DateTimeYesYesAll comparison operators
LookupYesYesFilter by GUID or primary name
ChoiceYesYes= and <>
Choices (multi)LimitedNoContains only
Yes/NoYesYes= and <>
FormulaYesDependsDepends on output type
CalculatedYesYesTreated like base type
RollupYesYesTreated like base type

Tips from the Field

  1. Set max lengths realistically. A “First Name” column with 4,000 characters wastes search index capacity.
  2. Use global choices when the same option set appears in multiple tables (e.g., Country, Department). This keeps labels consistent and simplifies reporting.
  3. Avoid multi-select Choices for reporting-critical data. Power BI struggles with comma-separated values. Use a many-to-many relationship instead.
  4. Test time zone behaviour before go-live. Create test records in different time zones and verify dates display correctly.
  5. Formula columns are your friend. They replaced many calculated column use cases and are always up to date.
  6. Document your schema. Keep a data dictionary — future you (and your colleagues) will thank you when the table has 60 columns and no one remembers what cr7a2_customfield3 does.