当前位置:首页 » 编程语言 » sql命令行事务
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql命令行事务

发布时间: 2023-02-28 07:29:23

⑴ 在sql中怎样使用事务

SQL Server 需要显示的定义 开始一个事务.
BEGIN TRANSACTION;

例如:
1> BEGIN TRY
2> -- SQL Server 需要显示的定义 开始一个事务.
3> BEGIN TRANSACTION;
4> -- 插入2条同样的数据,使主键重复,引发错误后回滚事务.
5> INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
6> INSERT INTO test_main(id, value) VALUES (4, 'FOUR');
7> -- 执行成功后,需要提交事务.
8> COMMIT;
9> END TRY
10> BEGIN CATCH
11> PRINT('Main.错误代码 = ' + STR(ERROR_NUMBER()));
12> PRINT('Main.错误严重级别 = ' + STR(ERROR_SEVERITY()));
13> PRINT('Main.错误状态代码 = ' + STR(ERROR_STATE()));
14> PRINT('Main.错误信息 = ' + ERROR_MESSAGE());
15> -- 回滚事务
16> ROLLBACK;
17> END CATCH
18>
19> go

⑵ mysql命令行什么时候需要手动开启事务

MySQL的事务如果不在任何修改,默认是自动提交的,也就是你只要执行一个SQL,回车之后这个SQL语句如果没有任何问题,只需完成后是自动提交的。
控制这个功能的参数是:autocommit。如果这个参数的值是on或者1,那么就是上面我说的那种现象。如果是off或者0,则表示不会自动提交事务。需要你显示的去提交事务。否则锁执行的SQL不会不会永久生效,只会对你当前命令行的session有效,退出MySQL后,执行的SQL语句将会别回滚。
当你需要两个SQL语句同时成功或者同时失败的时候,你可以手动地开启一个事务。比如下面的场景:
你想向订单表order_info表中插入一条新的订单记录,同时要想支付信息表payment_info中插入一条支付信息记录,这个时候从业务的角度上来看,这两个表中的插入操作,需要保持原子性(也就是事务的四大特性之一),也就是要么都插入成功,要么都插入失败,不能存在订单插入成功,支付插入失败,反之也不可以。
要满足上面的需求,你就需要手动的去开启一个事务,在这个事务中去插入两个表中的数据。然后再提交这个事务。如果这两个表的插入操作,你不手动的开启事务,MySQL自己会把两个SQL语句分开放在两个单独的事务中。执行一个插入,就会自动提交一个事务,然后在执行另外一个插入,再自动提交另外一个事务。
在MySQL看来,这是两个分别向两个表中插入的SQL语句而已,它不会从业务上考虑这两个SQL实际的业务逻辑背景是什么。所以此时他会看成是两个SQL语句,也就是两个事务。
这样的情况下就需要手动的开启事务。

⑶ SQL 对事务的管理包括哪几方面

首先你得了解什么是事务?
第一点:事务是一种机制.是一个操作序列,它包含一组数据库操作命令,并且所有的命令作为一个整体一起向系统提交或撤消,即这一组数据库命令要么都执行,要么都不执行.
第二点:你要了解事务的4个属性,即ACID
原子性:事务是一个完整的操作
一致性:当事务完成时,数据是必须处于一致状态
隔离性:对数据进修改的所有并发事务是彼此隔离的.
持久性:事务完成后,它对于系统的影响是永久的.

而你问如何管理事务,主要由下列语句
1.开始事务:begin tran
2.提交事务:commit tran
3.回滚事务:rollback tran
至于如何运用这些语句,其实很简单,你在编写事务SQL语句时,一定会存在if语句,也就是说,你认为对的,是正确的,就写上提交事务,你认为错了就回滚事务,但这些必须是语句最开头写上开始事务!

⑷ 请详细解释一下SQL中事务的定义以及实例。

事务是一种机制,是一个操作序列。事务包含了一组数据库操作命令,所有的命令作为一个整体一起向系统提交或撤销,这些命令要么都执行要么都不执行,因此事务是一个不可分割的逻辑工作单元。一个事务可能包括一条Transact-SQL语句,也可能包括多条Transact-SQL语句。
实例:设计一个简单的事务。
USE 学生成绩管理
GO
BEGIN TRAN -----开始一个事务
UPDATE 课程表 SET 学分=学分+1
DELETE FROM 成绩表 WHERE 成绩<60
COMMIT TRAN ------结束一个事务
GO

⑸ 谁能详细介绍下sql中的“事务 ” ,不要百度答案,写下自己的心得,不胜感激

sql事务就是你在执行update或者insert语句时,信息是否提交的控制,数据库默认是直接提交,如果你一次执行2条sql,第一条成功了,第二条失败了,你肯定想着两条要么都成功,要么都失败,这时候你就要用事务来控制,在两条都成功后,提交事务,否则进行事务回滚

⑹ sql中什么是事务啊

事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。

事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。

(6)sql命令行事务扩展阅读

事务类型

(1)手动事务

手动事务允许显式处理若干过程,这些过程包括:开始事务、控制事务边界内的每个连接和资源登记、确定事务结果(提交或中止)以及结束事务。

(2)自动事务

.NET 页、XML Web services方法或 .NET Framework 类一旦被标记为参与事务,它们将自动在事务范围内执行。您可以通过在页、XML Web services 方法或类中设置一个事务属性值来控制对象的事务行为。