The correct answer is A. METADATA$ROW_ID .
Snowflake streams record change data capture, or CDC, information for tables. When a stream tracks changes to a table, Snowflake adds metadata columns that describe the type of change and identify the affected row.
The standard stream metadata columns include:
METADATA$ACTION
METADATA$ISUPDATE
METADATA$ROW_ID
METADATA$ROW_ID is a unique and immutable identifier for a row. It is used to track the row involved in a change record.
Why A is correct:
METADATA$ROW_ID identifies the row associated with a change in a stream. This helps Snowflake track changed rows in stream output.
Why the other options are incorrect:
B. METADATA$START_SCAN_TIME is not a standard stream metadata column.
C. METADATA$FILE_CONTENT_KEY is file metadata used with staged files, not standard stream change tracking.
D. METADATA$FILE_ROW_NUMBER identifies a row number in a staged file during data loading, not a stream change row.
Official Snowflake documentation reference:
Snowflake documentation explains that streams expose metadata columns such as METADATA$ACTION, METADATA$ISUPDATE, and METADATA$ROW_ID. The METADATA$ROW_ID column uniquely identifies each row involved in a change.
[Reference: Snowflake Documentation — Introduction to streams; Snowflake Documentation — Stream metadata columns; SnowPro Core Study Guide — SQL and Snowflake Objects., ]