当前位置:首页 » 编程语言 » 事务sql

事务sql

发布时间: 2022-01-10 15:40:35

sql如何写事务

begin transaction
declare @k int
set @k=0
insert into a values('1','str')
if @@error<>0
set @k=@k+1
insert into b values('2','str')
if @@error<>0
set @k=@k+1
update a set name='stu' where id='1'
if @@error<>0
set @k=@k+1

if @K<>0
begin

rollback transaction
return
end
commit transaction

② sql中 事务的作用 什么情况下要用事务 需要什么条件

事物一般用在并发操作多张表的时候使用,用于保证用户的数据完整性~
不需要什么条件,在对多张关联表做操作的时候,最好就是加上事物~

③ 什么是事务,SQL Server中的事务有什么特点

原子性

事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。

一致性

事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。

隔离

由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。事务识别数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是第二个事务修改它之后的状态,事务不会识别中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。

持久性

事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。

④ sql中什么是事务啊

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

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

(4)事务sql扩展阅读

事务类型

(1)手动事务

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

(2)自动事务

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

⑤ c#里用事务和sql里用事务的区别

我觉得运行环境不一样,C#中事务运行在NET Framework的托管环境下,SQL语句里的事务运行在SQL Server的数据引擎里。

⑥ SQL中事务有几种

有三种。第一种是显式声名的事务,这种事务要以begin
transaction为事务的起始标志。第二种是自动提交事务,这是sql
server的缺省设置。每一个t-sql语句在执行完成后会被自动提交。第三种是隐含事务,在这种方式下,sql
server会在当前事务被提交或回滚后自动启动一个新的事务,这个新事务直到用户执行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中有什么作用

事务的好处在于,当你需要对多个表进行相关性操作时,使用BeginTrans()开启事务,然后操作,如果中间哪个表更新出错了,或者数据有问题,你可以用RollBack()方法在取消之前的相关性操作,如果没有错,那就使用Commit()方法提交你的修改。另外,在这个过程中,所有你改动的内容只对你自己有效,别人不能知道你改了什么,也不能对你正在改的表做修改,直到你提交之后,别人才能修改这些表,检索出你修改过的内容。

⑨ sql server中的事务是什么意思

事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据修改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据修改均被清除。 SQL Server 以下列事务模式运行。自动提交事务 每条单独的语句都是一个事务。显式事务 每个事务均以 BEGIN TRANSACTION 语句显式开始,以 COMMIT 或 ROLLBACK 语句显式结束。隐式事务 在前一个事务完成时新事务隐式启动,但每个事务仍以 COMMIT 或 ROLLBACK 语句显式完成。批处理级事务只能应用于多个活动结果集 (MARS),在 MARS 会话中启动的 Transact-SQL 显式或隐式事务变为批处理级事务。

⑩ 在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

热点内容
3k我的使命脚本 发布:2024-09-20 18:11:43 浏览:689
建设银行密码怎么设置 发布:2024-09-20 18:11:04 浏览:95
聚合脚本平台 发布:2024-09-20 17:51:55 浏览:180
访问拦截怎么解除安卓 发布:2024-09-20 17:28:48 浏览:275
萝卜干存储 发布:2024-09-20 17:21:37 浏览:716
苹果手机如何迁移软件到安卓手机 发布:2024-09-20 17:21:34 浏览:692
查看服务器ip限制 发布:2024-09-20 16:56:27 浏览:389
p搜系统只缓存1页为什么 发布:2024-09-20 16:48:51 浏览:840
上网的账号和密码是什么东西 发布:2024-09-20 16:31:31 浏览:612
安卓手机王者荣耀如何调超高视距 发布:2024-09-20 16:31:30 浏览:428