About these questions
These five questions are original. We wrote them in the style of the DP-800 skills measured, spread over the three domains. They are not taken from the exam, and the exam will word things differently. They are also short on purpose; scenario questions on the exam can be longer.
How to use these
Try each question without notes, and pick an answer before you open the explanation. Then read the explanation even when you were right, because the reason the closest wrong option fails is where the learning is. Note any domain where you slipped and revisit it on the domains explained page.
Question 1 (Design and develop database solutions)
A clinic’s report calls the table-valued function `dbo.GetOpenTickets(c.CustomerID)` for each row of `dbo.Customer c`. The report must list every customer, including customers for whom the function returns no rows. Which operator should combine the table and the function?
- A. CROSS APPLY
- B. INNER JOIN
- C. OUTER APPLY
- D. CROSS JOIN
Show the answer and explanation
Correct answer: C. APPLY runs the function once for each row of the left input and can pass columns of that row as arguments. OUTER APPLY keeps left rows even when the function returns nothing and fills the function columns with NULLs. CROSS APPLY is the closest wrong option: it works the same way but drops customers with no rows, which breaks the requirement. INNER JOIN and CROSS JOIN cannot pass a column of the left row into a function.
Question 2 (Design and develop database solutions)
A query builds a contact list with `JSON_ARRAY(Email1, Email2, Email3)`. When `Email2` is NULL, the result has only two elements, but the consuming application expects a JSON null in that position. What should you add to the JSON_ARRAY call?
- A. RETURNING json
- B. WITHOUT_ARRAY_WRAPPER
- C. NULL ON NULL
- D. ABSENT ON NULL
Show the answer and explanation
Correct answer: C. JSON_ARRAY skips NULL values by default, which is the same as ABSENT ON NULL. Adding NULL ON NULL keeps each NULL as a JSON null. ABSENT ON NULL is the closest wrong option because it is the behavior you already get. WITHOUT_ARRAY_WRAPPER is an option of the FOR JSON clause, not of JSON_ARRAY, and RETURNING json only changes the data type of the result.
Question 3 (Secure, optimize, and deploy database solutions)
An UPDATE statement on a large table has been running for hours. A DBA must look at its execution plan without running the statement. Which two methods should the DBA use? Choose two.
- A. SET STATISTICS XML ON before the statement
- B. Display Estimated Execution Plan in SQL Server Management Studio
- C. Include Live Query Statistics in SQL Server Management Studio
- D. SET SHOWPLAN_XML ON before the statement
- E. SET STATISTICS TIME ON before the statement
Show the answer and explanation
Correct answers: B and D. An estimated plan is produced without executing the statement. Management Studio’s Display Estimated Execution Plan and SET SHOWPLAN_XML ON both do that. SET STATISTICS XML ON is the closest wrong option: it returns the actual plan with runtime numbers, which means the UPDATE runs. Live Query Statistics and SET STATISTICS TIME ON also need the statement to execute.
Question 4 (Secure, optimize, and deploy database solutions)
A Data API builder configuration exposes eight entities over REST and GraphQL. A new rule says the whole API must be GraphQL-only, including entities that developers add later. Which change meets the rule with the least ongoing work?
- A. Set `runtime.graphql.enabled` to false
- B. Set `rest.enabled` to false on each entity
- C. Set `runtime.rest.enabled` to false
- D. Set `runtime.host.mode` to production
Show the answer and explanation
Correct answer: C. The runtime-level REST switch turns REST off for every entity, so entities added later are covered without further edits. Setting `rest.enabled` to false on each entity is the closest wrong option: it works today but must be repeated for every new entity. Disabling GraphQL at runtime level does the opposite of what the rule asks, and the host mode setting does not turn REST off.
Question 5 (Implement AI capabilities in database solutions)
A support assistant must answer questions about shipment status stored in Azure SQL Database tables. The data changes every few minutes, and answers must reflect the current rows without retraining the model. Which approach should you use?
- A. Fine-tune the model on the shipment table every week
- B. Add a few example answers to the system message
- C. Rely on the model’s pretrained knowledge
- D. Retrieval-augmented generation over the shipment tables
Show the answer and explanation
Correct answer: D. RAG retrieves the relevant rows when the question arrives and adds them to the prompt, so the answer reflects the current data and the model is never retrained. Fine-tuning is the closest wrong option: it changes how a model behaves, takes time to run, and cannot keep up with data that changes every few minutes. Example answers in the system message teach format, not current facts, and a pretrained model knows nothing about your tables.
More guides for DP-800
- DP-800 Study Plan: 4-Week and 8-Week
- Is DP-800 Hard? An Honest Difficulty Check
- DP-800 Prerequisites and Required Skills
- DP-800 Renewal and Retakes Explained
- Is DP-800 Worth It? An Honest Look
- DP-800 Cheat Sheet: Key Facts to Review
- DP-800 vs DP-700: Which Exam First?
Next step
If these felt comfortable, check the exam format and book. If a domain felt shaky, try more questions in the DP-800 practice tests.