Do I add read committed after SET TRANSACTION ISOLATION LEVEL SERIALIZABLE?

The command is TRANSACTION ISOLATION LEVEL, not SERVER ISOLATION LEVEL. It only changes the isolation level for the transaction scope.


No you do not have to implicitly set isolation level back to read committed.

From books online.

If you issue SET TRANSACTION ISOLATION LEVEL in a stored procedure or trigger, when the object returns control the isolation level is reset to the level in effect when the object was invoked. For example, if you set REPEATABLE READ in a batch, and the batch then calls a stored procedure that sets the isolation level to SERIALIZABLE, the isolation level setting reverts to REPEATABLE READ when the stored procedure returns control to the batch.


The command that you posted just run the transaction in the SP with TRANSACTION ISOLATION LEVEL SERIALIZABLE. Other connections will default to the default isolation level - read committed (unless specified a different isolation level explicitly).

There is an excellent series by Paul White - SQL Server Isolation Levels : A Series which will help you understand in depth what different isolation levels mean and do when they are used.