请问这些语句是什么意思?
请问这些语句是什么意思?中间部分是普通sql语句
set implicit_transactions on
SELECT GETDATE()
普通sql语句.......
IF @@TRANCOUNT > 0 COMMIT TRAN
set implicit_transactions off
go
set implicit_transactions on--设置SQL Server的隐式事务
--这些是事务的SQL语句
SELECT GETDATE()
普通sql语句.......
IF @@TRANCOUNT > 0 COMMIT TRAN--如果当前正在执行的事务数量为0 则COMMIT提交当前事务
set implicit_transactions off--关闭隐式事务
go
以下为SQL Server帮助上的解释
事务
事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。
Microsoft SQL Serve 以三种事务模式运行:
自动提交事务
每条单独的语句都是一个事务。
显式事务
每个事务均以 BEGIN TRANSACTION 语句显式开始,以 COMMIT 或 ROLLBACK 语句显式结束。
隐性事务
在前一个事务完成时新事务隐式启动,但每个事务仍以 COMMIT 或 ROLLBACK 语句显式完成。
个人觉得事务有点像DOS的批处理语句,也就是数据库即可以执行一条命令,也可以执行一批命令。
而事物的特点是有一个命令出错,前面的所有命令的执行结果都会被还原掉。