DP-900 Practice Question: Identify considerations for relational data on Azure
A company uses Azure SQL Database to store customer order data. They need to automatically track changes to the 'OrderStatus' column in the 'Orders' table. They want to be able to query the current status and also easily retrieve historical status changes for a given order without writing custom triggers or history tables. Which feature should they enable?
⚠ Common exam trap
Many exam-takers confuse Change Data Capture (CDC) with temporal tables, as both involve change tracking, but CDC is for streaming changes to downstream systems, not for querying historical row states per key with point-in-time accuracy.
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
Temporal tables
Temporal tables (system-versioned) automatically track full row history, including changes to the 'OrderStatus' column, by maintaining a paired history table. This allows querying both current and historical states with simple T-SQL clauses like FOR SYSTEM_TIME, without custom triggers or manual history tables.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
Change Data Capture (CDC)
Why it's wrong here
Change Data Capture (CDC) reads changes from the transaction log and writes them to an internal change table, but it does not provide a built-in way to reconstruct the historical state of a row as of a specific time. You must give the captured changes to a separate destination—like an audit table or an external system—and build custom logic to join or filter those captured changes if you need a temporal point-in-time view. Unlike temporal tables, CDC doesn't automatically maintain a complete before-and-after row version in the same table, so it's an extra layer of plumbing rather than a turnkey history feature.
- ✓
Temporal tables
Why this is correct
System-versioned temporal tables are a built-in Azure SQL Database feature that automatically stores every historical version of a row in a parallel history table, using two datetime2 period columns (ValidFrom/ValidTo) that the engine maintains on every insert, update, and delete. You can query the current fact table for live data and use T-SQL clauses like FOR SYSTEM_TIME AS OF, BETWEEN, or CONTAINED IN to see the rows exactly as they existed at a given point in time. No custom code, triggers, or jobs are required; the database automatically appends the prior versions and lets you query history directly from the base table.
- ✗
Automatic tuning
Why it's wrong here
Automatic tuning in Azure SQL Database is a performance management feature that continuously monitors workload execution and either suggests or automatically applies index adjustments, index creation, and query plan corrections to improve query speed. It operates entirely on execution plans and storage structures, never taking row-level snapshots or capturing the before-image of a data change. Because it's aimed at optimizing how queries run, it provides no audit trail and cannot answer a question like 'what was the order amount on a past date,' which is exactly the kind of historical data the company needs.
- ✗
Geo-replication
Why it's wrong here
Geo-replication creates one or more readable secondary replicas of an Azure SQL Database in a different Azure region, with data synchronized asynchronously so the secondary can take over or serve read traffic in a disaster or load-balancing scenario. Each secondary is a live copy of the current logical database, not a collection of past states, so it retains no record of historical changes to the customer order data. Even if you enable auto-failover or use the secondary for read-only reporting, you get the most recent data, not the ability to query how a row looked weeks ago.
Go deeper
Related to this question
Learn chapter
Data Roles and Core Concepts
Key term
Azure SQL Database
Azure SQL Database is a fully managed relational database-as-a-service (DBaaS) in Microsoft Azure, based on the SQL Server engine, that handles scaling, backups, patching, and high availability automatically.
Key term
Row
A row is a horizontal record in a database table that contains all the information about a single entity, like one customer or one product.
About these practice questions
This DP-900 question is part of Courseiva's 820-question bank — original exam-style content with full explanations and wrong-answer analysis, never real exam questions or exam dumps. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This DP-900 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the DP-900 exam.