SQL Server Insert时开启显式事务

时间:2023-12-19 09:19:56

如果没法避免一条一条的写入,那么在处理前显示开启一个事务 begin tran  在处理完成后 commit 这样也要比不开显示事务会快很多!

while i < 10000
begin
insert into test_0607
select @i,'0607无显示整体事务'
set i = i + 1
end

drop table test_0607
create table test_0607 (a int,b nvarchar(100))

---加上事务
begin tran
declare i int
set i = 1
while i < 10000
begin
insert into test_0607
select @i,'0607 显示整体事务'
set i = i + 1
end
----结束事务,提交
commit

结果 : 8秒和0.8秒的区别,不用多说啥了吧! 凡事有利有弊,这种显示开启大事务要保证的整体的过程不会执行特别长的时间,如果执行的操作特别多而且时间长就是灾难了!