0

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE

INSERT INTO Students VALUES(’Jason’,50);

UPDATE Students SET mark = mark + 10;

COMMIT

SET TRANSACTION ISOLATION READ COMMITED

INSERT INTO Students VALUES (’Kylie’,70);

SELECT SUM(mark) FROM Students;

COMMIT

If I have two transactions that run simultaneously, how do I know what runs first and what values would be returned by the query? I understand that Serializable isolates T1. But more than that I don't know how to proceed.

Dabig
  • 1

1 Answers1

0

if you run both at same time, READ COMMITTED will wait for SERIALIZABLE to finish. btw, seems BEGIN TRANSACTION is missing on your TSQL.

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
BEGIN TRANSACTION
   INSERT INTO Students VALUES(’Jason’,50);
   UPDATE Students SET mark = mark + 10;
COMMIT TRANSACTION

SET TRANSACTION ISOLATION READ COMMITTED
BEGIN TRANSACTION
   INSERT INTO Students VALUES (’Kylie’,70);
   SELECT SUM(mark) FROM Students;
COMMIT TRANSACTION
Ed Bangga
  • 12,879
  • 4
  • 16
  • 30