DP-700 Practice Questions and Answers Latest 2026 : Microsoft Fabric Exam Prep

DP-700 Practice Questions and Answers Latest 2026: Microsoft Fabric Exam Prep

Welcome to Part 4 of our DP-700 practice questions and answers series. This post covers questions 31–40 for the Microsoft DP-700: Implementing Data Engineering Solutions Using Microsoft Fabric exam.

In this set, you will practice important exam topics such as primary key constraints in Fabric Warehouse, semantic model refresh monitoring, KQL filtering and sorting, Apache Spark workload isolation, row-level security, and Azure Key Vault secret retrieval from Fabric notebooks.

Exam Tip: DP-700 often tests whether you know the correct Fabric tool for the job. Pay close attention to whether a scenario asks for warehouse SQL, KQL, notebooks, pipelines, or security configuration.

DP-700 Practice Questions and Answers – Part 4

Question 31: Creating a Primary Key in a Fabric Warehouse

You have a Fabric workspace that contains a warehouse named Warehouse1.

In Warehouse1, you create a table named DimCustomer. You need to set the CustomerKey column as a primary key of the DimCustomer table.

Which three code segments should you run in sequence?

Correct Answer:

  1. ALTER TABLE dbo.DimCustomer
  2. ADD CONSTRAINT PK_DimCustomer PRIMARY KEY NONCLUSTERED (CustomerKey)
  3. NOT ENFORCED

Explanation

To add a primary key constraint to an existing table in a Fabric warehouse, you use the ALTER TABLE statement. The constraint is then added by using ADD CONSTRAINT and defining the primary key column.

In Microsoft Fabric Warehouse, primary key and foreign key constraints are commonly created as NOT ENFORCED. This means the constraint is used as metadata for modeling and query optimization purposes, but the engine does not enforce data integrity during data modification operations.

ALTER TABLE dbo.DimCustomer
ADD CONSTRAINT PK_DimCustomer
PRIMARY KEY NONCLUSTERED (CustomerKey)
NOT ENFORCED;

This syntax defines CustomerKey as the primary key without requiring the warehouse engine to enforce uniqueness.


Question 32: Dynamically Executing and Monitoring Semantic Model Refresh

You have a Fabric workspace that contains a semantic model named Model1.

You need to dynamically execute and monitor the refresh progress of Model1.

What should you use?

  1. Dynamic management views in Microsoft SQL Server Management Studio
  2. Monitoring hub
  3. Dynamic management views in Azure Data Studio
  4. A semantic link in a notebook

Correct Answer: D. A semantic link in a notebook

Explanation

A semantic link in a notebook provides a flexible way to interact with semantic models programmatically. It can be used to trigger operations, inspect metadata, and monitor refresh behavior within a notebook-based workflow.

Monitoring hub can show activity details, but the question asks to dynamically execute and monitor the refresh progress. A notebook with semantic link gives the required programmatic control and visibility.


Question 33: KQL Filtering and Sorting Scenario

You have a Fabric eventstream that loads data into a table named Bike_Location in a KQL database. The table contains the following columns:

  • BikepointID
  • Street
  • Neighbourhood
  • No_Bikes
  • No_Empty_Docks
  • Timestamp

You need to apply transformation and filter logic. The solution must return data for a neighbourhood named Sands End when No_Bikes is at least 15. The results must be ordered by No_Bikes in ascending order.

A proposed solution uses KQL but sorts the results without explicitly specifying ascending order.

Does this meet the goal?

  1. Yes
  2. No

Correct Answer: B. No

Explanation

The proposed solution does not meet the goal because KQL sorting must explicitly specify asc when ascending order is required. If the query sorts without specifying ascending order, it may not return the expected order.

The correct KQL pattern should filter first and then sort by No_Bikes asc.

Bike_Location
| where Neighbourhood == "Sands End"
| where No_Bikes >= 15
| sort by No_Bikes asc
| project BikepointID, Street, Neighbourhood, No_Bikes, No_Empty_Docks, Timestamp

This query returns only Sands End rows where the number of bikes is at least 15 and orders the results correctly in ascending order.


Question 34: KQL Default Sort Order

You have a KQL database table named Bike_Location. You need to return rows where Neighbourhood is Sands End and No_Bikes is at least 15. The results must be ordered by No_Bikes in ascending order.

A proposed solution filters the correct rows but does not explicitly specify asc in the order by clause.

Does this meet the goal?

  1. Yes
  2. No

Correct Answer: B. No

Explanation

The answer is No because the query does not explicitly sort by No_Bikes asc. For exam scenarios, when the requirement says ascending order, the safest and correct KQL syntax must include asc.

A correct solution would use:

| sort by No_Bikes asc

This ensures the output matches the required order. Without explicit ascending sort, the result may not satisfy the scenario.


Question 35: Correct KQL Query with Ascending Sort

You have a Fabric eventstream that loads data into a KQL database table named Bike_Location. The table contains bike location and availability data.

You need to return data for the neighbourhood named Sands End when No_Bikes is at least 15. The results must be ordered by No_Bikes in ascending order.

A proposed solution uses KQL with filtering and explicitly sorts by No_Bikes asc.

Does this meet the goal?

  1. Yes
  2. No

Correct Answer: A. Yes

Explanation

The solution meets the goal because it uses KQL syntax correctly. It filters rows where the neighbourhood is Sands End, checks that No_Bikes is at least 15, and sorts the result in ascending order.

The correct query pattern is:

Bike_Location
| where Neighbourhood == "Sands End"
| where No_Bikes >= 15
| sort by No_Bikes asc
| project BikepointID, Street, Neighbourhood, No_Bikes, No_Empty_Docks, Timestamp

This meets all requirements: correct neighbourhood, minimum bike count, ascending sort order, and relevant output columns.


Question 36: Using SQL Syntax Against a KQL Database

You have a Fabric eventstream that loads data into a table named Bike_Location in a KQL database.

You need to return rows for the neighbourhood Sands End when No_Bikes is at least 15. The results must be ordered by No_Bikes in ascending order.

A proposed solution uses SQL syntax such as SELECT, FROM, WHERE, and ORDER BY.

Does this meet the goal?

  1. Yes
  2. No

Correct Answer: B. No

Explanation

The solution does not meet the goal because the data is stored in a KQL database. KQL databases should be queried by using Kusto Query Language, not standard SQL syntax.

The correct KQL approach uses operators such as where, sort by, and project.

Bike_Location
| where Neighbourhood == "Sands End"
| where No_Bikes >= 15
| sort by No_Bikes asc
| project BikepointID, Street, Neighbourhood, No_Bikes, No_Empty_Docks, Timestamp

Using SQL-style syntax would not be the appropriate solution for this KQL database scenario.


Question 37: Isolating Bronze and Silver Layer Processes

A company uses Microsoft Fabric and implements a medallion architecture with bronze, silver, and gold layers. Notebooks are used to transform files into Delta tables for the bronze and silver layers.

You need to ensure that processes for the bronze and silver layers run in isolation.

How should you configure the Apache Spark settings?

  1. Disable high concurrency.
  2. Create a custom pool.
  3. Modify the number of executors.
  4. Set the default environment.

Correct Answer: B. Create a custom pool.

Explanation

A custom Spark pool allows you to isolate workloads by assigning separate compute resources to different processes or layers. This is useful in medallion architecture because bronze and silver transformations may have different resource and execution requirements.

Disabling high concurrency does not provide the same level of controlled resource isolation. Changing the number of executors affects performance but does not create separate execution environments. Setting the default environment controls libraries and runtime settings, not process isolation.


Question 38: Implementing Row-Level Security for Authors

A publishing company stores author sales data in a table named AuthorSales. The table contains a column named AuthorEmail. Authors authenticate to a guest Fabric tenant by using their email address.

You need to ensure that authors can see only their respective sales data.

How should you complete the row-level security configuration?

Correct Answer:

  • Use SCHEMABINDING in the RLS function.
  • Use USER_NAME() to identify the current user.
  • Apply the security policy to the AuthorSales table.

Explanation

Row-level security requires a filter function that defines which rows are visible to the current user. In this scenario, the filter should compare the user identity with the AuthorEmail column.

SCHEMABINDING is required for the predicate function used in row-level security. USER_NAME() returns the current database user name and can be compared with the author email value. The security policy is then applied to the AuthorSales table so that each author sees only their own rows.

CREATE FUNCTION Security.fn_authorPredicate(@AuthorEmail varchar(320))
RETURNS TABLE
WITH SCHEMABINDING
AS
RETURN SELECT 1 AS fn_securitypredicate_result
WHERE @AuthorEmail = USER_NAME();

This pattern restricts row visibility based on the authenticated user.


Question 39: Retrieving Secrets from Azure Key Vault in a Fabric Notebook

You have an Azure Key Vault named KeyVault1 that contains secrets. You have a Fabric workspace named Workspace1 and a notebook named Notebook1.

Notebook1 loads staged data to target lakehouse tables and triggers the refresh of a semantic model. You plan to add functionality that uses the Fabric API to monitor semantic model refreshes.

You need to retrieve the registered application ID and secret from KeyVault1 to generate an authentication token.

Proposed solution: Use notebookutils.credentials.getSecret and specify the key vault URL and key vault secret.

Does this meet the goal?

  1. Yes
  2. No

Correct Answer: B. No

Explanation

The proposed solution does not meet the goal because the required parameters are not specified correctly for this scenario. In Fabric notebooks, secret retrieval must be configured according to supported notebook utilities and linked service or Key Vault access configuration.

The key point is that you need to retrieve the secret securely from Key Vault. The proposed combination of key vault URL and key vault secret is not the correct method described in the question set.

For the exam, remember that getSecret is used to retrieve secrets, but the exact parameter pattern matters.


Question 40: Using putSecret Instead of getSecret

You have an Azure Key Vault named KeyVault1 that contains secrets. A Fabric notebook named Notebook1 must retrieve the registered application ID and secret from KeyVault1 to generate an authentication token.

Proposed solution: Use notebookutils.credentials.putSecret and specify the key vault URL and key vault secret.

Does this meet the goal?

  1. Yes
  2. No

Correct Answer: B. No

Explanation

The answer is No because putSecret is used to store or write a secret, not retrieve one. The requirement is to retrieve an existing application ID and secret from Azure Key Vault.

For retrieval, the correct operation is based on getSecret, not putSecret. Using the wrong method would fail to meet the requirement of reading the secret for authentication token generation.


Summary of DP-700 Practice Questions Part 4

Question Main Topic Correct Answer
Question 31 Fabric Warehouse primary key constraint ALTER TABLE + ADD CONSTRAINT + NOT ENFORCED
Question 32 Semantic model refresh monitoring D
Question 33 KQL sorting behavior B
Question 34 KQL ascending order B
Question 35 Correct KQL filtering and sorting A
Question 36 SQL syntax vs KQL syntax B
Question 37 Spark workload isolation B
Question 38 Row-level security for authors SCHEMABINDING + USER_NAME() + AuthorSales
Question 39 Azure Key Vault secret retrieval B
Question 40 Notebook secret utility method B

Frequently Asked Questions

What does NOT ENFORCED mean in Fabric Warehouse constraints?

NOT ENFORCED means the warehouse records the constraint as metadata but does not actively enforce data integrity during insert, update, or delete operations. This is common in analytical warehouse scenarios.

What is the correct way to sort ascending in KQL?

To sort ascending in KQL, explicitly use asc, such as | sort by No_Bikes asc. This ensures the result order matches the requirement.

Why should KQL syntax be used for KQL databases?

KQL databases are designed to be queried using Kusto Query Language. SQL-style syntax such as SELECT and FROM is not the correct query pattern for these scenarios.

How can Spark workloads be isolated in Microsoft Fabric?

Spark workloads can be isolated by using custom Spark pools. Custom pools allow separate resources and configurations for different workloads, such as bronze and silver medallion layers.

Which function is used to retrieve secrets in Fabric notebooks?

Secret retrieval is performed by using a get secret operation, such as notebookutils.credentials.getSecret, based on the supported Fabric notebook configuration. The putSecret operation is used for storing secrets, not retrieving them.

Final Thoughts

This fourth set of DP-700 practice questions focused on technical areas that commonly appear in Microsoft Fabric data engineering scenarios. You reviewed warehouse constraints, semantic model refresh monitoring, KQL syntax, Spark workload isolation, row-level security, and secure secret handling from notebooks.

For the DP-700 exam, make sure you clearly understand the difference between SQL warehouse queries, KQL database queries, notebook-based operations, and pipeline orchestration. Choosing the correct Fabric item is often the key to selecting the right answer.


Leave a Comment