DP-800 — Frequently Asked Questions
Community-vetted answers to 24 common questions about this exam.
Questions from real practice questions
Each Q&A comes from a specific community question — follow the link for its full analysis.
How Do You Complete the REGEXP Phone Query for dbo.CustomerMessages?
DigitsOnly must be derived from RawNumber, the extracted phone-number substring. Replacing on MessageRaw would keep unrelated message text and would not preserve the required NULL when no phone pattern matches.
Conceptually REGEXP_LIKE tests whether matching text exists, but the PhoneStatus expression is built as REGEXP_COUNT(MessageRaw, pattern) > 0; choose the drag value that matches that numeric comparison.
SQL Database Blocking and RCSI in Microsoft Fabric
RCSI uses row versioning to provide a consistent snapshot for readers, eliminating the need for shared locks that would conflict with exclusive write locks.
Check sys.dm_exec_sessions for open_transaction_count > 0 and status = sleeping, then link via blocking_session_id in sys.dm_exec_requests.
SQL Server REGEXP_REPLACE for Email Normalization
Option A replaces everything from the '+' to the end of the string with nothing, deleting the domain name entirely.
It matches the literal plus sign, followed by any characters, stopping right before the '@' symbol.
How Do You Return One Earliest Ticket per Customer per Day from JSON Data?
It returns the earliest timestamp per group but cannot return the other columns of that specific ticket, so it never satisfies the requirement to return the earliest ticket row itself.
Yes. Partitioning by the extracted customer ID and the date, then ordering by CreatedAt ascending, makes row number 1 the earliest ticket for that customer on that day.
How Should You Partition Table1 by Year in Azure SQL?
For data starting in 2020, '2021-01-01' separates 2020 from 2021; adding '2020-01-01' creates an empty pre-2020 partition, not a better yearly split.
The index must be partition-aligned so a single yearly partition can be rebuilt or reindexed; rebuilding on [PRIMARY] leaves it nonaligned and forces whole-table maintenance.
Does the CustomerProfiles schema satisfy PII and RLS requirements?
No. The RLS filter predicate is evaluated first, so filtered rows never reach the result set and DDM has nothing to mask.
Not automatically. If the application connects with a non-admin login, RLS applies to that login; administrator bypass does not follow the app connection.
Optimizing Azure SQL Dashboard Queries with Nonclustered Indexes
A clustered index determines physical storage order. Since the query filters by FleetId, indexing on LastUpdatedUtc would require scanning many rows before filtering, whereas FleetId provides direct access.
An index is covering when it contains all columns referenced in the query's WHERE and SELECT clauses. Here, including FleetId, LastUpdatedUtc, EngineStatus, and BatteryHealth allows the engine to satisfy the request entirely from the index.
Minimizing CPU for Azure SQL Embedding Updates
Triggers run synchronously within the database transaction. Calling AI_GENERATE_EMBEDDINGS inside a trigger consumes significant SQL Server CPU and locks resources, violating the requirement to minimize DB CPU.
Only if real-time accuracy isn't critical and the dataset is small. For millions of rows, a full scan hourly causes severe performance degradation and is not considered an efficient maintenance strategy.
Querying Blocking Chains in Azure SQL with T-SQL
sys.dm_exec_requests provides direct access to session IDs and blocking relationships, making it easier to construct a self-referencing join for chain analysis.
OUTER APPLY allows you to execute a function (like getting SQL text) for each row in the left table, ensuring blocked sessions are included even if they lack immediate metadata.
Fabric GraphQL API: Can SqlUsers Query or Edit SalesApi?
No. Running queries and mutations requires the separate Run Queries and Mutations permission on the SalesApi item.
No. Without Run Queries and Mutations, the API cannot execute the query regardless of the connection identity or SSO setting.
Azure SQL Blocking from Sleeping Session with Open Transaction
Deadlocks are resolved immediately by killing one session. This session remains sleeping, indicating it is waiting, not deadlocked.
It means the session has begun a transaction but hasn't finished it, keeping all acquired locks active until commit or rollback.
How to Build a Patient Transaction Running Total in T-SQL for DP-800?
The default RANGE frame aggregates all rows tied on TransactionDate, so same-day transactions show the same total. ROWS UNBOUNDED PRECEDING adds one row at a time for a true running total.
An inline TVF returns a rowset that can be joined or CROSS APPLY-ed and is inlined by the optimizer. A stored procedure cannot be referenced in a FROM clause, so it fails the join requirement.