Types of columns
The names used for types depend on the designer used. Power Apps uses a convention that includes the way the data is formatted. The solution explorer type uses a name aligned with the database data type with a format modifier.
Watch this video for a quick overview about data types in Dataverse:
The following table includes the corresponding
AttributeTypeDisplayName API type.
|Portal Data type||Solution Explorer type||API type|
|Big Integer||Time Stamp||
|Date and Time||Date and Time
Date and Time Format
|Date Only||Date and Time
Date Only Format
|Decimal Number||Decimal Number||
|Single Line of Text
|Floating Point Number||Floating Point Number||
|Multiline Text||Multiple Lines of Text||
|Phone||Single Line of Text
|Status Reason||Status Reason||
|Text Area||Single Line of Text
Text Area Format
|Text||Single Line of Text
|Ticker Symbol||Single Line of Text
Ticker Symbol Format
Time Zone Format
|Unique Identifier||Unique Identifier or Primary Key||
|URL||Single Line of Text
|Whole Number||Whole Number
For more descriptions for each type you can add or edit, see the article for the corresponding designer:
- Create and edit columns for Microsoft Dataverse using Power Apps portal: Column Data types
- Create and edit columns for Dataverse using Power Apps solution explorer: Column Data types
For more information about how column data types are defined in the API, see Attribute metadata
Column types used by the system
There are some columns used by the system that you cannot add using the designer.
|Big Integer or Time Stamp||Used by the system to capture a version number manage updates to a table.|
|Customer||A lookup column that you can use to specify a customer, which can be an account or contact.
Note: This attribute can be added using solution explorer designer.
|Owner||A system lookup column that references the user or team that is assigned a user or team owned table row.|
|Status Reason||A system column that has options that provide additional detail about the Status column. Each option is associated with one of the available Status options. You can add and edit the options.
You can also include custom state transitions to control which status options are available for certain tables. More information: Define status reason transitions for custom tables
|Status||A system column that has options that generally correspond to active and inactive status. Some system attributes have additional options, but all custom attributes have only Active and Inactive status options.|
|Unique Identifier||A system column stores a globally unique identifier (GUID) value for each row.|
Text columns can contain text characters. This column type has several format options that will change the presentation of the text.
Watch this video for a quick overview about text columns:
You can customize forms (main, quick create, and quick view) and email templates by adding multi-select columns that are called Choices. When you add a choices column, you can specify multiple values that will be available for users to select. When users fill out the form they can select one, multiple, or all the values displayed in a drop-down list.
For example, if an organization operates in multiple areas or countries, you can include multiple locations or countries in an ‘Area of operation’ column. A user can then select one or more locations from the list of available values.
Choices can be used with read-only grids, editable grids, and most forms. Multi-select choices can't be used with:
- Workflows, business process flows, actions, dialogs, business rules, charts, rollup columns, or calculated columns.
- Reports, SLA1, and routing rules1.
1table requires Dynamics 365 Customer Service.
Multi-select columns are supported in the following types of forms:
|Refresh form||Read-only (column will available but cannot be edited)|
|Bulk Edit form||No|
You can use global choices that are defined in your organization to configure values for the multi-select choices.
Using the right type of number
When choosing the correct type of number column to use, the choice to use a Whole Number or Currency type should be straightforward. The choice between using Floating Point or Decimal numbers requires more thought.
Watch this video to help you decide what number column type to use:
Decimal numbers are stored in the database exactly as specified. Floating point numbers store an extremely close approximation of the value. Why choose extremely close approximation when you can have the exact value? The answer is that you get different system performance.
Use decimals when you need to provide reports that require very accurate calculations, or if you typically use queries that look for values that are equal or not equal to another value.
Use floating point numbers when you store data that represents fractions or values that you will typically query comparing to another value using greater than or less than operators. In most cases, the difference between decimal and float isn’t noticeable. Unless you require the most accurate possible calculations, floating point numbers should work for you.
Using currency columns
Currency columns allow for an organization to configure multiple currencies that can be used for rows in the organization. When organizations have multiple currencies, they typically want to be able to perform calculations to provide values using their base currency. When you add a currency column to a table that has no other currency columns, two additional columns are added:
A lookup column called Currency that you can set to any active currency configured for your organization. You can configure multiple active currencies for your organization in Settings > Business Management > Currencies. There you can specify the currency and an exchange rate with the base currency set for your organization. If you have multiple active currencies, you can add the currency column to the form and allow people to specify which currency should be applied to money values for this row. This will change the currency symbol that is shown for the currency columns in the form.
Individuals can also change their personal options to select a default currency for the rows they create.
A decimal column called Exchange Rate that provides the exchange rate for a selected currency associated with the table with respect to the base currency. If this column is added to the form, people can see the value, but they can’t edit it. The exchange rate is stored with the currency.
For each currency column you add, another currency column is added with the suffix
_Base on the name. This column stores the calculation of the value of the currency column you added and the base currency. Again, if this column is added to the form, it can’t be edited.
When you configure a currency column you can choose the precision value. There are three options as shown in the following table.
|Pricing Decimal Precision||This is a single organization precision to be used for prices found in Settings > Administration > System Settings > General Tab.|
|Currency Precision||This option applies the precision defined for the currency in the row.|
|Specific precision values||These settings allow for defining a specific set precision using values between 0 and 4.|
Different types of lookups
When you create a new lookup column you are creating a new Many-to-One (N:1) table relationship between the table you’re working with and the Target Row Type defined for the lookup. There are additional configuration options for this relationship that are described in Create and edit relationships between tables. But all custom lookups can only allow for a reference to a single row for a single target row type.
However, you should be aware that not every lookup behaves this way. There are several different types of system lookups as shown here.
|Simple||Allows for a single reference to a specific table. All custom lookups are this type.|
|Customer||Allows for a single reference to either an account or a contact row.|
|Owner||Allows for a single reference to either a team or a user row. All team or user-owned tables have one of these. More information: Add a table as a lookup option in your app|
|PartyList||Allows for multiple references to multiple tables. These lookups are found on the Email table To and Cc columns. They’re also used in the Phone and Appointment tables.|
|Regarding||Allows for a single reference to multiple tables. These lookups are found in the regarding column used in activities.|
Use image columns to display a single image per row in the application. Each table can have one image column. You can add an image column to custom tables but not to standard tables. Some standard tables have image columns defined.
Even though a table has an image column, displaying that image in a model-driven app requires that you enable two settings.
- The standard table definition Primary Image property value must be set to Default Image. Custom tables require a custom image column. Then, you can select that image column for the Primary Image value in the custom table definition.
- The table form where the image is to be displayed must have the Show image in the form property enabled.
When image display is enabled for a table, any rows that don’t have an image will display a placeholder image. For example:
People can choose the default image to upload a picture from their computer. Images must be less than 10 MB and must be in one of the following formats:
When the image is uploaded, it will be converted to a .jpg format and all downloaded images will also use this format. If an animated .gif is uploaded, only the first frame is saved.
When an image is uploaded, it will be resized as a "thumbnail" image to a maximum size of 144 pixels by 144 pixels. People should resize or crop the images before they upload them so that they will display well using this size. All images are cropped to be square. If both sides of an image are smaller than 144 pixels, the image will be cropped to be a square with the dimensions of the smaller side.
Add image support for a form in a custom table using solution explorer
Open solution explorer.
In the left navigation pane, expand Tables, expand the custom table you want, and then select Columns.
On the toolbar, select New.
In the Type section in the Data Type dropdown list select Image.
Enter a Display Name, such as Custom table image.
Complete the remaining columns as appropriate. Notice that the Name, Column Requirement, and Searchable columns can’t be changed. Select Save and Close.
On the table definition next to the Primary Image property make sure the value is set to the custom image you created in the previous step. If it's not select it.
Open the form where you want image support, such as the table main form.
On the form editor ribbon, select Form Properties.
On the Form Properties page, select the Display tab, select Show image in the form, and then select OK.
On the form editor ribbon, select Save, and then select Publish. Close the form editor.
Once the maximum file size has been saved, it can't be changed.
App users can now select the image to display on the form. When an app user opens the form for a row, they can choose the image that they want displayed on the form.
If the row is a new row that hasn’t been saved the error Invalid Argument is returned when you try to change the image.
Change the image for a record
Once a table form has an image column, app users can change the image for a given record.
Open the app that includes the table form, and then select the image on the form.
Select Upload image, browse and select the image you want displayed on the table form, and then select Change. The image appears on the record.
More information for developers working with image data:
[This topic is pre-release documentation and is subject to change.]
The File column is used for storing binary data. The primary intended use of this column is to store a single image, note, or attachment. However, storage of other forms of binary data is also possible. One or more columns of this data type can be added to an existing standard customizable table or a custom table.
The default Maximum file size is 32 MB and the largest size you can set is 10 GB. The file size limit can be set individually for each column of file type added to a table.
Once the maximum file size has been saved, it can't be changed.
To create a file column, on the left pane in Power Apps select Solutions, open the solution you want, open the table you want, on the Columns tab select Add Column, and then in the Column properties pane, select File as the Data type.
More information for developers working with file data: File attributes