Advance Topics, Transactions (Part 2 of 2)
A transaction needs to have a starting and ending point. The starting point can be implied, for example, by starting a host program, or it can be explicit with a START TRANSACTION or a BEGIN TRANSACTION. The ending point is explicit with either a COMMIT or ROLLBACK command.
SQL Server starts with BEGIN TRANSACTION.
BEGIN TRANSACTION;
INSERT INTO MANAGER_TBL
('STOR_NO', 'MGR_NO', 'MGR_NAME')
SELECT STOR_ID, EMPL_ID, EMPL_NAME
FROM EMPLOYEE_TBL
WHERE TITLE = 'STORE MANAGER';
COMMIT;
SQL:1999, MySQL, PostgreSQL, and SQL Server switched to the new SQL standard START TRANSACTION:
START TRANSACTION;
INSERT INTO MANAGER_TBL
('STOR_NO', 'MGR_NO', 'MGR_NAME')
SELECT STOR_ID, EMPL_ID, EMPL_NAME
FROM EMPLOYEE_TBL
WHERE TITLE = 'STORE MANAGER';
COMMIT;
> Access transaction control starts with BeginTrans and ends with CommitTrans or RollbackTrans.
> DB2 and ORACLE always have an implied starting point, so they do not need an explicit starting statement.