Right before the BEGIN TRANSACTION, put SET TRANSACTION ISOLATION LEVEL REPEATABLE READ, since you are writing the begin tran, you can write that too.
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability