数据库(sql server )回滚事务

假如存在一个选课管理数据库,要求定义事务向其中的选课表中插入学号=‘20100021’的多条记录,并检验若该生报名课程超过4门,则回滚事务,即报名无效,否则成功提交事务。选课表定义如下。
选课表:(学号,课程号,报名号)
假设要插入的记录为以下三条:
‘20100021’,‘01’,1

‘20100021’,‘02’,2

‘20100021’,‘03’,3
根据以上要求编写程序(sql写)。

--开始一个事务处理
Begin Tran T1

--执行插入操作
insert into [选课表]([学号],[课程代码]) values('20100021','01');
insert into [选课表]([学号],[课程代码]) values('20100021','02');
insert into [选课表]([学号],[课程代码]) values('20100021','03');

--判断同一学号的选课数量是否符合
IF(select count([学号]) as cnt from [选课表] where [学号]='20100021')>4
BEGIN
--不符合,回滚事务
rollback Tran T1
END
ELSE
BEGIN
--符合,提交事务
commit Tran T1
END
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-10-11
这个要求不需要用事务回滚的吧。
insert 中加上判断该工号记录数的条件即可,保证当记录数少于4时执行插入语句。

insert () values() where(select count(*) from table where emp_id=‘20100021’)<4
第2个回答  2012-10-11
这个在数据库检查合适么?

什么是SQLSERVER事务处理和事务回滚?
事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)...

数据库中前滚、回滚什么意思?
前滚和回滚是 SQL Server? 中的两个事务操作。\\x0d\\x0a\\x0d\\x0a前滚-恢复。白话:还没有做,根据日志继续把它做完。 \\x0d\\x0a回滚-撤销。白话:已经做了,根据日志取消刚才所做的。\\x0d\\x0a每个 Microsoft? SQL Server? 2000 数据库都有一个事务日志记录数据库内的数据修改,事务日...

sql语句中的回滚事务
sql语句中的回滚事务语法如下:1、setXACT_ABORToff时,回滚产生错误的Transact-SQL语句,而事务将继续进行处理,(注:错误严重或者语法错误时可能回滚整个事务)2、setXACT_ABORTON时,如果Transact-SQL语句产生运行时错误,整个事务将终止并回滚。

mssql错删数据如何回滚sql误删除数据回滚
选择要分离的数据库,并首先分离它。删除相应的日志文件。数据库-所有任务-附加数据库-在附加数据库的弹出框中选择mdf。选择“是”完成创建新的数据库日志文件。它对数据库操作没有影响。以上两种方法生成的日志文件只有504kb。mysql有自带回滚功能吗?你指的是事务回滚吗,mysql的innodb和ndb引擎支持事务...

从零开始学 SQL Server 事务,只需三分钟!
示例中,我们以开始事务、尝试插入新行至“orders”表、随后更新“customers”表为例。若过程出错,利用 ROLLBACK 回滚事务,确保数据一致性。事务在SQL Server中是强大工具,确保数据库操作的完整性和一致性。通过掌握事务使用,能有效避免操作过程中出现的错误,并在问题发生时恢复至原始状态。

SQL Server中事务处理怎么用?
BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。事务处理可以将一组操作视为一个整体,只有全部 语句 都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。BeginTrans和CommitTrans用于 ...

数据库中前滚、回滚什么意思
数据库中的undo、rollback,既撤消和回滚。首先这2个操作是针对事务来说的,事务的概念请楼主自行百度。举一个简单的例子,A给B转账,在数据库中就需要给A,B进行update操作。这2条sql语句必须都执行或者都不执行(称为一个事务)。假如先执行B的update语句,B的金额增加了100,然后执行A的update语句...

五种主流数据库:事务处理
五种主流数据库在事务处理中,如 MySQL、Oracle、SQL Server、PostgreSQL 和 SQLite,都采用事务控制语言(TCL)来管理数据的增删改合操作。事务是一组业务逻辑相关的 SQL 语句,数据库管理系统确保其要么全部成功,要么全部回滚,以保持数据一致性。事务有四个关键属性:原子性、一致性、隔离性和持久性,...

sqlserver中事务的作用是什么?
sql server中事务的作用是如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上个节点。为了确保要么执行,要么不执行,就可以使用事务。是指访问并可能更新数据库中各种数据项的一个程序逻辑执行单元(unit)。

什么是提交事务和回滚事务啊?
1、事务就是指准备要做的或所做的事情,在计算机语言中是指访问并可能更新数据库中各种数据项的一个程序单元,也是数据库运行中的逻辑工作单位,由DBMS中的事务管理子系统负责事务的处理。2、提交事务:Commit Transaction,成功的结束,将所有的DML语句操作历史记录和底层硬盘数据来一次同步 3、事务回滚:...

相似回答