transaction事务小结

来源:互联网 发布:小筱邸数据 编辑:程序博客网 时间:2024/05/18 03:40
在执行update和insert、delete、truncate命令时,特别要注意,要开启一个事务,防止执行失败。

1.开启事务
begin transaction

2.测试两条删除命令
delete 表名
truncate table 表名

3.回滚

rollback transaction


4.成功后提交事务
commit


tip:
1.开启一次事务,只能执行一次回滚,即只能执行一次rollback transaction。

2.删除整个表内容,truncate要比delete效率高。

3.truncate命令只能删除整个表内容,而不能加where条件;若表有自增ID,如果使用该命令,再次插入数据后ID从1开始自增。

4.(特别注意).truncate命令可能不能被回滚;笔者在sql server2008测试不能使用回滚,但是在sql server2014可以回滚。鉴于该命令的不确定性,如果用truncate时需要在本地测试以下,以防发生错误。

5.一个细节,但是很重要。对于事务,如果开启之后,在进行增删改(update和insert、delete、truncate)操作之后,必须马上进行提交或者回滚。因为在进行提交或回滚之前,其他用户无法对该表进行任何操作(包括查询),导致的一个问题是,如果线上网站或者游戏中需要对表进行操作也是无法进行的。

6. select @@trancount可以查看当前事务的个数。默认0是没有开启事务。拓展:select @@ROWCOUNT可以查看上一操作返回的数目,包括select

update、insert、delete(笔者在sql server2008测试该命令)。

0 0
原创粉丝点击