> For the complete documentation index, see [llms.txt](https://docs.fabricplan.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.fabricplan.com/powertable-sheets/how-tos/create-a-table-app/connect-powertable-sheet-to-a-semantic-model.md).

# Connect to a semantic model

In this article, you look at the steps to connect to a semantic model from a PowerTable sheet. Connect to an existing semantic model and create a table app. The data table, along with any changes or updates, is saved to your preferred destination database.

In this method, the semantic model is the input source, and the created database is the destination that stores the changes written back from the app.

{% hint style="info" %}

#### Note

You can also create a table by uploading data from an Excel or CSV file. For more information, see [Create a table app with PowerTable sheets.](/get-started/create-a-table-app-with-powertable-sheets.md)
{% endhint %}

### Prerequisites

Before you begin, make sure that you have the following prerequisites in place:

* Connections established to the [Fabric SQL database](broken://pages/6MsazWRLONP4W94ZjAeN) and the [semantic model](broken://pages/smsCIjhgtRXDXGmLG9vH) that contain the data for your PowerTable.
* A [Plan item](/get-started/creating-a-planning-sheet.md#create-a-planning-sheet) created in your Fabric workspace.

### Create a PowerTable sheet

1. In your plan, select **New PowerTable Sheet** or select the **PowerTable** icon on the landing page. Enter a name for the sheet and select **Create**.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FbXDtnlcgpe452H1Mautr%2Fimage.png?alt=media&amp;token=2dc33da3-578a-4f24-a2d7-2966fbf71a47" alt=""><figcaption></figcaption></figure>

2. Select **Create a New App** to create your app. You can also select **Explore PowerTable** to experience a sample PowerTable app.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FH7AmEnIBbPMfKSP9Ouxp%2Fimage.png?alt=media&amp;token=3eed306d-61fc-4ded-a2bb-8ce33b8707d0" alt=""><figcaption></figcaption></figure>

3. **Select a Connection:** Choose a Fabric SQL connection if available. If there are no connections, you can create one by selecting [Create Connection](/get-started/create-a-database-connection-for-collaboration.md).

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FhMqwEJAsfu3sKi5KsVN2%2Fselect%20connection.png?alt=media&amp;token=0f07e150-2dde-4ff0-aa83-f3c52e8a8541" alt=""><figcaption></figcaption></figure>

4. **Database Name:** Select the destination Fabric SQL database to store the table data. Select **Add**.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FpCaLiMJjbPGlV0SgQhXn%2Fimage.png?alt=media&amp;token=b49f626f-ea31-4d34-8abb-0dbdd14583cb" alt=""><figcaption></figcaption></figure>

5. Select **Connect**.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FGey1jL8F6MWii9WmYxuo%2Fimage.png?alt=media&amp;token=c9649e02-c979-487e-8cd3-cef3dc4f35c1" alt="" width="375"><figcaption></figcaption></figure>

### Create a table

1. Select **New Table**.
2. Choose the database schema.
3. Enter a **Table Name**.
4. Choose **Connect To Semantic Model** in **Import Data**.
5. Select your **Connection** and the required **Semantic Model**.
6. Select **Next**.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FIGiEVaAqys2KqTpyFfar%2Fimage.png?alt=media&amp;token=3931a90e-2d23-411f-8d73-a53a4ace9d34" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}

#### Note

Capacity workspaces with Pro licenses are not supported. Make sure to select a workspace of premium capacity.
{% endhint %}

7. Map and assign your data to the table by selecting the required fields and corresponding values.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FPeitLOgVkMHJkTCtWzO5%2Fimage.png?alt=media&amp;token=343ac7c8-3fe6-421f-b32a-db9e0a248cc9" alt=""><figcaption></figcaption></figure>

8. Set the primary key fields by selecting the three dots and selecting primary keys.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FIis2SrB5F6KPveUx0nLY%2Fimage.png?alt=media&amp;token=f6661e22-21a4-4ac4-a63e-bb93b5eff78f" alt=""><figcaption></figcaption></figure>

9. If needed, you can use filters to include only specific field values from the table.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FbUJpik2EqVfc8mMqAMuT%2Fimage.png?alt=media&amp;token=97233c3d-ee9a-4019-bc18-1cb46a3d4a1e" alt=""><figcaption></figcaption></figure>

10. Select **Next**.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2F0cyjejzgCBJ0hEoeoc3L%2Fimage.png?alt=media&amp;token=844b23f3-496e-42d7-8676-5c803fcc252b" alt=""><figcaption></figcaption></figure>

#### Configure columns

PowerTable sheets automatically detect column properties and rename any unsupported column names to match the supported format. You can review and modify them as needed.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FjWHDlWv1h1a2MCLUME76%2Fimage.png?alt=media&amp;token=e1db5238-2492-403a-a274-3f50d831eaef" alt=""><figcaption></figcaption></figure>

1. Review the detected column settings.
2. If the primary key is unselected, select the appropriate column as the primary key.
3. Configure columns as required:
   * Mark fields as **Mandatory** if they must contain values.
   * Set fields with distinct values as **Unique Key** to allow only unique values.
   * Set a column as an **Identity Column** when you need PowerTable to generate unique, sequential values automatically. Only numeric columns and primary key columns can be configured as identity columns.
4. Modify column properties, including:
   * Length
   * Data type
   * Input type
   * Display name
5. Enter default values for columns, if required.
6. Optionally, select **Add Column** to create additional columns.
7. To create a composite primary key, select **Unique Combination**, and then select two or more columns to define a unique combination key.
8. Select **Finish**.

{% hint style="info" %}

#### Note

In this step, you can **enable Slowly Changing Dimensions (SCDs)** by turning the toggle. For a table, this is a one-time configuration that cannot be modified later.
{% endhint %}

9. The table app is created successfully in PowerTable with the configured columns and values. Select **Save** to save your table.

<figure><img src="https://257222532-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUtolck8kt8atqxFPsEBn%2Fuploads%2FOFYOKmERNBz2M98azz0n%2Fimage.png?alt=media&amp;token=fe953241-26ab-42d9-b557-428e750b0fad" alt=""><figcaption></figcaption></figure>

### FAQ <a href="#next-steps" id="next-steps"></a>

#### Do changes made in PowerTable update the semantic model or its underlying data source?

No. PowerTable uses the semantic model only to **seed** the destination table.

When you create a PowerTable app from a semantic model, PowerTable reads the semantic model and copies its data into the selected **Fabric SQL database** destination table.

After the initial load:

* All changes made in PowerTable are written directly to the **Fabric SQL database destination table**.
* Changes made in PowerTable don't update the semantic model or its underlying data source.

#### **Are there any exceptions to this based on the underlying data source (Lakehouse, Warehouse, or external database) or on the semantic model storage mode?**

No. The **Save to Database** option always writes data to the configured **Fabric SQL database destination table**, regardless of the semantic model's underlying data source or storage mode.

When you create a PowerTable app from a semantic model:

* The semantic model is used only to seed the PowerTable with initial data. The underlying data source, whether a **Lakehouse, Warehouse, or external database**, isn't written to.
* The semantic model's storage mode, whether **Import, DirectQuery, or Direct Lake**, doesn't affect the write path. It only determines how PowerTable reads the seed data.
* After the initial load, all changes made in PowerTable are written directly to the configured **Fabric SQL database destination table**.

#### When are newly added members in PowerTable reflected on a planning sheet? Is it supported?

Yes. PowerTable supports this scenario. Newly added members appear in the planning sheet in two ways:

* **Direct connection:** When PowerTable writes to a Fabric SQL database table, the table appears in the planning's data pane under **Data > From Sheets**, where you can assign its columns directly as dimensions and measures. There is no replication or intermediate semantic model. Newly added members are available in the planning sheet as soon as the changes are committed.
* **Direct Lake connection:** When the planning sheet uses a **Direct Lake semantic model**, PowerTable writes the data to the Fabric SQL database table, which is automatically replicated to **OneLake**. The Direct Lake semantic model reads the replicated data from OneLake. With automatic updates enabled, newly added members are automatically reflected in the planning sheet after the changes reach OneLake, although a short delay might occur because replication has near-real-time latency.

{% hint style="info" %}

### Note

Schema changes, such as adding or modifying columns, might require a semantic model refresh.
{% endhint %}

### Next steps <a href="#next-steps" id="next-steps"></a>

Configure [access control](/powertable-sheets/how-tos/set-up-row-and-column-access-control.md) and automated workflows and [approvals](/powertable-sheets/how-tos/approval-flow/configure-approval-workflow.md) for your new app.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.fabricplan.com/powertable-sheets/how-tos/create-a-table-app/connect-powertable-sheet-to-a-semantic-model.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
