sql数据库事务
① sqlserver中事务的作用是什么
sql server中事务的作用是如果任何一个语句操作失败那么整个操作就被失败,以后操作就会回滚到操作前状态,或者是上个节点。为了确保要么执行,要么不执行,就可以使用事务。是指访问并可能更新数据库中各种数据项的一个程序逻辑执行单元(unit)。
(1)sql数据库事务扩展阅读:
事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。
一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。
② SQL事务概念是什么,举个例子说明什么样的东西是事务,与程序又有何区别,
数据库事务是构成单一逻辑工作单元的操作集合。
举例:转账是生活中常见的操作,比如从A账户转账100元到B账号。站在用户角度而言,这是一个逻辑上的单一操作,然而在数据库系统中,至少会分成两个步骤来完成:
1、将A账户的金额减少100元
2、将B账户的金额增加100元。
与程序的区别:一个程序中包含多个事务。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
(2)sql数据库事务扩展阅读:
事务必须具备四个属性,简称ACID属性:
1、原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行。
2、一致性(Consistency):当事务完成时,数据必须处于一致状态。
3、隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。
4、永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性。
③ 如何查看sql2008数据库的事务日志文件
在SQL Server 7.0和SQL Server2000中,可以用下面的命令查看: DBCC log ( {dbiddbname}, [, type={01234}] ) 参数: Dbid or dbname - 任一数据库的ID或名字 type - 输出结果的类型: 0 - 最少信息(operation, context, transaction id) 1 - 更多信息(plus flags, tags, row length) 2 - 非常详细的信息(plus object name, index name,page id, slot id) 3 - 每种操作的全部信息 4 - 每种操作的全部信息加上该事务的16进制信息 默认 type = 0 要查看MSATER数据库的事务日志可以用以下命令: DBCC log (master) 释放日志空间 1.清空日志 DUMP TRANSACTION 库名 WITH NO_LOG 2.截断事务日志: BACKUP LOG 数据库名 WITH NO_LOG 3.收缩数据库文件(如果不压缩,数据库的文件不会减小 企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件 --选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 --选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了 也可以用SQL语句来完成 --收缩数据库 DBCC SHRINKDATABASE(客户资料) --收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles DBCC SHRINKFILE(1) 4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行) a.分离数据库: 企业管理器--服务器--数据库--右键--分离数据库 b.在我的电脑中删除LOG文件 c.附加数据库: 企业管理器--服务器--数据库--右键--附加数据库 此法将生成新的LOG,大小只有500多K 或用代码: 下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。 a.分离 E X E C sp_detach_db @dbname = 'pubs' b.删除日志文件 c.再附加 E X E C sp_attach_single_file_db @dbname = 'pubs', @physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\pubs.mdf' 5.为了以后能自动收缩,做如下设置: 企业管理器--服务器--右键数据库--属性--选项--选择"自动收缩" --SQL语句设置方式: E X E C sp_dboption '数据库名', 'autoshrink', 'TRUE' 6.如果想以后不让它日志增长得太大 企业管理器--服务器--右键数据库--属性--事务日志 --将文件增长限制为xM(x是你允许的最大数据文件大小) --SQL语句的设置方式: alter database 数据库名 modify file(name=逻辑文件名,maxsize=20) 特别注意: 请按步骤进行,未进行前面的步骤,请不要做后面的步骤 否则可能损坏数据库. 一般不建议做第4,6两步 第4步不安全,有可能损坏数据库或丢失数据 第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复. 另外提供一种更简单的方法,建议大家使用。 更简单的方法: 1。右建数据库属性窗口--故障还原模型--设为简单 2。右建数据库所有任务--收缩数据库 3。右建数据库属性窗口--故障还原模型--设为大容量日志记录
④ SQL中事务有几种
分为:
自动提交事务,显式事务,隐性事务
事务
事务是单个的工作单元。如果某一事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久组成部分。如果事务遇到错误且必须取消或回滚,则所有数据更改均被清除。
自动提交事务
每条单独的语句都是一个事务。
显式事务
每个事务均以
BEGIN
TRANSACTION
语句显式开始,以
COMMIT
或
ROLLBACK
语句显式结束。
隐性事务
在前一个事务完成时新事务隐式启动,但每个事务仍以
COMMIT
或
ROLLBACK
语句显式完成。
⑤ sql中什么是事务啊
事务(Transaction),一般是指要做的或所做的事情。在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。
事务通常由高级数据库操纵语言或编程语言(如SQL,C++或Java)书写的用户程序的执行所引起,并用形如begin transaction和end transaction语句(或函数调用)来界定。
(5)sql数据库事务扩展阅读
事务类型
(1)手动事务
手动事务允许显式处理若干过程,这些过程包括:开始事务、控制事务边界内的每个连接和资源登记、确定事务结果(提交或中止)以及结束事务。
(2)自动事务
.NET 页、XML Web services方法或 .NET Framework 类一旦被标记为参与事务,它们将自动在事务范围内执行。您可以通过在页、XML Web services 方法或类中设置一个事务属性值来控制对象的事务行为。
⑥ 怎么查看sql数据库的事务级别
就sqlserver数据库而言,每一条语句在默认事务级别下(可提交读级别)都是加锁的
如一条普通的查询,要加S锁(共享),一个更新要加U锁(更新)等等
你说的表锁、行锁只是锁的粗粒程度,如字面意思,行锁是锁住几行,表锁就是锁住整个表所在的全部数据页
⑦ SQL的存储过程和事务是怎么回事
存储过程相当于C语言中的函数,它是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