SQL BEGIN
SQL BEGIN helps analysts open an explicit transaction before related statements run.
What & Why
The BEGIN pattern is used to open an explicit transaction before related statements run. This keeps the SQL aligned with one concrete business question and makes the result grain explicit before the query is reused.
See How It Works
BUSINESS QUESTION
Marketing wants to identify the exact active campaign rows before beginning one atomic change.
| id | name | channel | spend | start_date | end_date | status | target_segment |
|---|---|---|---|---|---|---|---|
| 1 | Spring Launch | google_ads | 55000.00 | 2024-01-15 | 2024-03-31 | active | smb |
| 2 | Retention Webinar | 45000.00 | 2024-02-10 | 2024-04-15 | active | enterprise | |
| 3 | Finance Retargeting | 50000.00 | 2024-03-12 | 2024-05-31 | active | enterprise | |
| 4 | Enterprise Search | google_ads | 60000.00 | 2024-04-01 | 2024-06-30 | active | enterprise |
EXAMPLE QUERY
-- BEGIN; opens the transaction before the write statements.
SELECT
id AS campaign_id,
name,
status
FROM marketing.campaigns
WHERE status = 'active'
ORDER BY campaign_id;RESULT — active campaigns before a transaction
| campaign_id | name | status |
|---|---|---|
| 1 | Spring Launch | active |
| 2 | Retention Webinar | active |
| 3 | Finance Retargeting | active |
| 4 | Enterprise Search | active |
The read-only example establishes the state a transaction could begin from.
This lesson's practice is part of Pro.
Sign up free to try it on a real business scenario