SET TRANSACTION ISOLATION LEVEL SERIALIZEABLE
This isolation level is the most restrictive. It requests range locks the range of key values that are read by each statement in the transaction. This also means that
INSERT statements from other transactions will be blocked if the rows to be inserted are in the range locked by the current transaction.
This option has the same effect as setting
HOLDLOCK on all tables in all
SELECT statements in a transaction.
Note: This transaction isolation has the lowest concurrency and should only be used when necessary.