数据库事务sql
Ⅰ 数据库(sql server )回滚事务
--开始一个事务处源理
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
Ⅱ sqlserver中事务的作用是什么
sql server中事务的作用是如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上个节点。为了确保要么执行,要么不执行,就可以使用事务。是指访问并可能更新数据库中各种数据项的一个程序逻辑执行单元(unit)。
(2)数据库事务sql扩展阅读:
事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
Ⅲ SQL中事务有几种
分为:
自动提交事务,显式事务,隐性事务
事务
事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。
自动提交事务
每条单独的语句都是一个事务。
显式事务
每个事务均以
BEGIN
TRANSACTION
语句显式开始,以
COMMIT
或
ROLLBACK
语句显式结束。
隐性事务
在前一个事务完成时新事务隐式启动,但每个事务仍以
COMMIT
或
ROLLBACK
语句显式完成。
Ⅳ SQL事务
SQL中没有像 DELPHI 那样 TRY Finnal 的方式,通常都是这样写:
--判断表的存在性
If NOT Exists(select * from dbo.sysobjects where name='sysobjects')
--自定义错误号,说明表不存在。
Return -1
--执行查询
select * from table1
--有错误反回错误号
If @@Error<>0
Return @@Error
--正确反回0
Return 0
--补充回答
在Sql Server中,是没有象开发工具那种的容错处理,他有的只是判断对象的存在性及用事务来解决数据的完整性、一致性等等。但通用的做法都是在可能发生错误的地方设置错误处理或反回错误号,自定义的也可以。这样在程序里我们可以捕获错误号来进行相应的错误提示。
--补充回答
“多人同时访问时一旦某个事务永久锁定了一个表,那其它人都无法访问了”你说的这个问题是数据库对象锁定问题,跟你提问的问题有所区别,数据库对象锁定实质是由DBMS完成的,如果对象真的被锁定了的话,只有在对象被解锁以后才能对其进行操作,当然能进行什么样的操作也跟锁的类型及类度相关。开发者对对象进行加锁,也要分不同操作进行,操作完成后DBMS会自动解锁。
如果出现像你说的死所现像的话,DBMS是不能完成解锁功能的,只有人工进行处理了。
至于你提出的问题,你的想法是好的,但是DBMS都是通过提前判断来进行容错的,或者抛出错误号在程序中进行捕获处理。
Ⅳ 关于SQL数据库事务的提交问题
如果第二种写法取得@@error值后仅仅执行不带附加选项的rollback操作的话,与第一种写法是没有什么区别的,都会回滚的事务的开始,也就是begin transaction开始的位置。
如果在rollback中指定了回滚到某个保存点,那么肯定就跟第一种写法有区别了。我们可以在事务执行某些操作后设置一个或多个保存点,这样就可以使事务回滚到指定的保存点,而不必全部回滚。
Ⅵ SQL事务的概念,四个特性
(1):事务(transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,sql
server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。
(2):事务通常是以begin
transaction开始,以commit或rollback结束。
commit表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。
rollback表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。
(3):事务运行的三种模式:
a:自动提交事务
每条单独的语句都是一个事务。每个语句后都隐含一个commit。
b:显式事务
以begin
transaction显式开始,以commit或rollback显式结束。
c:隐性事务
在前一个事务完成时,新事务隐式启动,但每个事务仍以commit或rollback显式结束。
(4):事务的特性(acid特性)
a:原子性(atomicity)
事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。
b:一致性(consistency)
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
c:隔离性(isolation)
一个事务的执行不能被其他事务干扰。
d:持续性/永久性(rability)
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
注:事务是恢复和并发控制的基本单位。
((1)是回答事务的概念到底是什么——即你的提问,至于(2)、(3)、(4)只是作的稍许补充而已,不必深究,呵呵……)
Ⅶ SQL事务概念
(1):事务(Transaction)是并发控制的单位,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,SQL Server能将逻辑相关的一组操作绑定在一起,以便服务器保持数据的完整性。
(2):事务通常是以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。
COMMIT表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到磁盘上的物理数据库中去,事务正常结束。
ROLLBACK表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有以完成的操作全部撤消,滚回到事务开始的状态。
(3):事务运行的三种模式:
A:自动提交事务
每条单独的语句都是一个事务。每个语句后都隐含一个COMMIT。
B:显式事务
以BEGIN TRANSACTION显式开始,以COMMIT或ROLLBACK显式结束。
C:隐性事务
在前一个事务完成时,新事务隐式启动,但每个事务仍以COMMIT或ROLLBACK显式结束。
(4):事务的特性(ACID特性)
A:原子性(Atomicity)
事务是数据库的逻辑工作单位,事务中包括的诸操作要么全做,要么全不做。
B:一致性(Consistency)
事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。
C:隔离性(Isolation)
一个事务的执行不能被其他事务干扰。
D:持续性/永久性(Durability)
一个事务一旦提交,它对数据库中数据的改变就应该是永久性的。
注:事务是恢复和并发控制的基本单位。
((1)是回答事务的概念到底是什么——即你的提问,至于(2)、(3)、(4)只是作的稍许补充而已,不必深究,呵呵……)
Ⅷ sql事务!!
A. 命名事务
以下示例显示如何命名事务。
复制
DECLARE @TranName VARCHAR(20);
SELECT @TranName = 'MyTransaction';
BEGIN TRANSACTION @TranName;
USE AdventureWorks;
DELETE FROM AdventureWorks.HumanResources.JobCandidate
WHERE JobCandidateID = 13;
COMMIT TRANSACTION @TranName;
GO
B. 标记事务
以下示例显示如何标记事务。将标记事务 CandidateDelete。
复制
BEGIN TRANSACTION CandidateDelete
WITH MARK N'Deleting a Job Candidate';
GO
USE AdventureWorks;
GO
DELETE FROM AdventureWorks.HumanResources.JobCandidate
WHERE JobCandidateID = 13;
GO
COMMIT TRANSACTION CandidateDelete;
GO
参照MSDN
Ⅸ sql中什么是事务啊
事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。
(9)数据库事务sql扩展阅读
事务类型
(1)手动事务
手动事务允许显式处理若干过程,这些过程包括:开始事务、控制事务边界内的每个连接和资源登记、确定事务结果(提交或中止)以及结束事务。
(2)自动事务
.NET 页、XML Web services方法或 .NET Framework 类一旦被标记为参与事务,它们将自动在事务范围内执行。您可以通过在页、XML Web services 方法或类中设置一个事务属性值来控制对象的事务行为。