Bird
Raised Fist0
SQLquery~10 mins

BEGIN TRANSACTION syntax in SQL - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - BEGIN TRANSACTION syntax
Start
↓
BEGIN TRANSACTION
↓
Execute SQL Statements
↓
COMMIT or ROLLBACK
↓
End Transaction
This flow shows starting a transaction, running SQL commands, then either saving changes with COMMIT or undoing with ROLLBACK.
Execution Sample
SQL
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;
This code starts a transaction, transfers 100 from account 1 to 2, then saves changes.
Execution Table
StepActionTransaction StateEffect on DataNotes
1BEGIN TRANSACTIONTransaction startedNo data changed yetTransaction begins, changes will be grouped
2UPDATE accounts SET balance = balance - 100 WHERE id = 1Transaction activeAccount 1 balance decreased by 100 (pending)Change is not yet permanent
3UPDATE accounts SET balance = balance + 100 WHERE id = 2Transaction activeAccount 2 balance increased by 100 (pending)Change is not yet permanent
4COMMITTransaction endedAll changes saved permanentlyChanges become visible to others
5EndNo active transactionData is consistent and savedTransaction complete
💡 Transaction ends after COMMIT, changes are saved permanently
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4
Transaction StateNo transactionActiveActiveNo transaction
Account 1 BalanceOriginalOriginal - 100 (pending)Original - 100 (pending)Original - 100 (committed)
Account 2 BalanceOriginalOriginalOriginal + 100 (pending)Original + 100 (committed)
Key Moments - 2 Insights
Why don't the balance changes appear permanent immediately after the UPDATE statements?
Because the transaction is still active (see steps 2 and 3 in execution_table), changes are pending and not visible outside until COMMIT.
What happens if we do not run COMMIT after BEGIN TRANSACTION?
The transaction remains open and changes are not saved; they can be undone with ROLLBACK or will be lost if connection closes.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the transaction state after step 3?
ANo active transaction
BTransaction started but idle
CTransaction active
DTransaction committed
💡 Hint
Check the 'Transaction State' column at step 3 in execution_table
At which step do the balance changes become permanent?
AStep 3
BStep 4
CStep 2
DStep 5
💡 Hint
Look for when COMMIT happens in execution_table
If ROLLBACK was used instead of COMMIT at step 4, what would happen to the balances?
AChanges would be undone, balances stay original
BChanges would be saved permanently
COnly account 1 balance changes saved
DOnly account 2 balance changes saved
💡 Hint
Recall that ROLLBACK cancels all changes in the transaction
Concept Snapshot
BEGIN TRANSACTION starts a group of SQL commands as one unit.
Changes inside are temporary until COMMIT saves them.
ROLLBACK cancels all changes in the transaction.
Use transactions to keep data consistent and safe.
Full Transcript
This lesson shows how BEGIN TRANSACTION starts a transaction in SQL. After starting, you can run multiple SQL commands. These changes are not permanent until you run COMMIT, which saves all changes together. If you run ROLLBACK instead, all changes are undone. This helps keep data safe and consistent by grouping related changes. The execution table shows each step: starting the transaction, updating balances, and committing changes. The variable tracker shows how the transaction state and account balances change step by step. Key moments explain why changes are pending until commit and what happens if commit is skipped. The quiz tests understanding of transaction states and effects of commit or rollback.

Practice

(1/5)
1. What is the main purpose of using BEGIN TRANSACTION in SQL?
easy
A. To permanently delete all data from a table
B. To start a group of database operations that can be saved or undone together
C. To create a new database
D. To display all records from a table

Solution

  1. Step 1: Understand what BEGIN TRANSACTION does

    This command starts a transaction, grouping multiple operations so they can be committed or rolled back as one.
  2. Step 2: Compare other options

    Deleting data, creating databases, or displaying records are unrelated to starting transactions.
  3. Final Answer:

    To start a group of database operations that can be saved or undone together -> Option B
  4. Quick Check:

    BEGIN TRANSACTION = start safe group [OK]
Hint: Think of transactions as a safety net for multiple actions [OK]
Common Mistakes:
  • Confusing transaction start with data deletion
  • Thinking it creates databases
  • Assuming it shows data
2. Which of the following is the correct syntax to start a transaction in SQL?
easy
A. BEGIN TRANSACTION;
B. START TRANSACTION;
C. BEGIN;
D. TRANSACTION START;

Solution

  1. Step 1: Recall standard SQL syntax for starting transactions

    The correct syntax to start a transaction is BEGIN TRANSACTION;.
  2. Step 2: Check other options for correctness

    START TRANSACTION; is valid in some systems but not standard SQL; BEGIN; alone is incomplete; TRANSACTION START; is invalid syntax.
  3. Final Answer:

    BEGIN TRANSACTION; -> Option A
  4. Quick Check:

    Correct syntax = BEGIN TRANSACTION; [OK]
Hint: Remember: 'BEGIN TRANSACTION;' starts the safe block [OK]
Common Mistakes:
  • Using incomplete 'BEGIN;' without TRANSACTION
  • Confusing order of words
  • Using non-standard phrases
3. Consider this SQL code:
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT;

What is the effect of this transaction?
medium
A. The transaction will cause an error
B. Only the first update is saved
C. Both updates happen together or not at all
D. Updates happen immediately without grouping

Solution

  1. Step 1: Analyze the transaction block

    The two updates are inside a transaction started by BEGIN TRANSACTION; and ended by COMMIT;.
  2. Step 2: Understand transaction behavior

    Both updates will be saved together if no errors occur; if an error happens, none will be saved.
  3. Final Answer:

    Both updates happen together or not at all -> Option C
  4. Quick Check:

    Transaction = all or nothing [OK]
Hint: Transactions group changes to save or cancel together [OK]
Common Mistakes:
  • Thinking updates save separately
  • Assuming immediate save without commit
  • Believing transaction causes error here
4. Identify the error in this SQL transaction code:
BEGIN TRANSACTION
INSERT INTO users (name) VALUES ('Alice');
COMMIT;
medium
A. INSERT statement is invalid
B. COMMIT should come before INSERT
C. No error, code is correct
D. Missing semicolon after BEGIN TRANSACTION

Solution

  1. Step 1: Check syntax of each statement

    BEGIN TRANSACTION is missing a semicolon at the end, which is required to separate statements.
  2. Step 2: Verify order and validity of other statements

    COMMIT; correctly comes after the insert; the insert syntax is valid.
  3. Final Answer:

    Missing semicolon after BEGIN TRANSACTION -> Option D
  4. Quick Check:

    Semicolon needed after BEGIN TRANSACTION [OK]
Hint: Always end SQL statements with semicolon [OK]
Common Mistakes:
  • Forgetting semicolon after BEGIN TRANSACTION
  • Misordering COMMIT and INSERT
  • Assuming insert syntax is wrong
5. You want to transfer $200 from account A (id=1) to account B (id=2) safely. Which SQL transaction block correctly ensures the transfer is atomic and consistent?
hard
A.
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance - 200 WHERE id = 1;
UPDATE accounts SET balance = balance + 200 WHERE id = 2;
COMMIT;
B.
UPDATE accounts SET balance = balance - 200 WHERE id = 1;
UPDATE accounts SET balance = balance + 200 WHERE id = 2;
C.
BEGIN TRANSACTION;
UPDATE accounts SET balance = balance + 200 WHERE id = 2;
COMMIT;
D.
BEGIN;
UPDATE accounts SET balance = balance - 200 WHERE id = 1;
ROLLBACK;

Solution

  1. Step 1: Understand the need for atomic transfer

    Both debit and credit updates must happen together or not at all to keep balances consistent.
  2. Step 2: Evaluate each option

    BEGIN TRANSACTION;
    UPDATE accounts SET balance = balance - 200 WHERE id = 1;
    UPDATE accounts SET balance = balance + 200 WHERE id = 2;
    COMMIT;
    uses BEGIN TRANSACTION and COMMIT to group both updates safely.
    UPDATE accounts SET balance = balance - 200 WHERE id = 1;
    UPDATE accounts SET balance = balance + 200 WHERE id = 2;
    lacks transaction, risking partial update.
    BEGIN TRANSACTION;
    UPDATE accounts SET balance = balance + 200 WHERE id = 2;
    COMMIT;
    only credits without debit.
    BEGIN;
    UPDATE accounts SET balance = balance - 200 WHERE id = 1;
    ROLLBACK;
    rolls back, so no change occurs.
  3. Final Answer:

    BEGIN TRANSACTION;
    UPDATE accounts SET balance = balance - 200 WHERE id = 1;
    UPDATE accounts SET balance = balance + 200 WHERE id = 2;
    COMMIT;
    -> Option A
  4. Quick Check:

    Atomic transfer needs BEGIN TRANSACTION + COMMIT [OK]
Hint: Use BEGIN TRANSACTION and COMMIT to group related updates [OK]
Common Mistakes:
  • Not grouping both updates in a transaction
  • Forgetting COMMIT to save changes
  • Rolling back changes unintentionally
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard