看你是什么事务隔离级别了。如:SET TRANSACTION ISOLATION LEVEL SERIALIZABLE是为了防止在事务没有完成的时候另一用户,访问事务内,未提交的数据
create table Table1 (a int)
go
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE
begin tran
  insert table1 values(1)               ----这句在事物没有commit前,被另一个用户
                                        ----访问是错误的,应为下面有可能会出错  insert table1 values('aaa')           ----这句由于类型不一样将报错
                                        ----设置了SERIALIZABLE的话就不会发生脏读
commit transelect * from table1