sql事务实例
A. 请详细解释一下sql中事务的定义以及实例。
事务是一种机制,是一个操作序列。事务包含了一组数据库操作命令,所有的命令作为一个整体一起向系统提交或撤销,这些命令要么都执行要么都不执行,因此事务是一个不可分割的逻辑工作单元。一个事务可能包括一条Transact-SQL语句,也可能包括多条Transact-SQL语句。
实例:设计一个简单的事务。
USE 学生成绩管理
GO
BEGIN TRAN -----开始一个事务
UPDATE 课程表 SET 学分=学分+1
DELETE FROM 成绩表 WHERE 成绩<60
COMMIT TRAN ------结束一个事务
GO
B. sql“事务”
create proc mypro1
@sid int
as
begin transaction
declare @q
select @q=count(*) from借书记录表where sid=@sid
delete from 借书记录表 where sid=@sid
delete from 学生表 where sid=@sid
if @q<>0
begin
rollback tran
end
commit tran
go
C. SQL事务概念是什么,举个例子说明什么样的东西是事务,与程序又有何区别,
数据库事务是构成单一逻辑工作单元的操作集合。
举例:转账是生活中常见的操作,比如从A账户转账100元到B账号。站在用户角度而言,这是一个逻辑上的单一操作,然而在数据库系统中,至少会分成两个步骤来完成:
1、将A账户的金额减少100元
2、将B账户的金额增加100元。
与程序的区别:一个程序中包含多个事务。在关系数据库中,一个事务可以是一条SQL语句,一组SQL语句或整个程序。
(3)sql事务实例扩展阅读:
事务必须具备四个属性,简称ACID属性:
1、原子性(Atomicity):事务是一个完整的操作。事务的各步操作是不可分的(原子的);要么都执行,要么都不执行。
2、一致性(Consistency):当事务完成时,数据必须处于一致状态。
3、隔离性(Isolation):对数据进行修改的所有并发事务是彼此隔离的,这表明事务必须是独立的,它不应以任何方式依赖于或影响其他事务。
4、永久性(Durability):事务完成后,它对数据库的修改被永久保持,事务日志能够保持事务的永久性。
D. 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
E. SQL 事务的编写能不能提供一个实例 最好给出一个规范的实例!不要一个sql语句一个提交的那种!要先定义后在
SAVE TRANSACTION 保存点名称 --自定义保存点的名称和位置
ROLLBACK TRANSACTION 保存点名称 --回滚到自定义的保存点
BEGIN TRANSACTION--开始事务
DECLARE @errorSun INT --定义错误计数器
SET @errorSun=0 --没错为0
UPDATE a SET id=232 WHERE a=1 --事务操作SQL语句
SET @errorSun=@errorSun+@@ERROR --累计是否有错
UPDATE aa SET id=2 WHERE a=1 --事务操作SQL语句
SET @errorSun=@errorSun+@@ERROR --累计是否有错
IF @errorSun<>0
BEGIN
PRINT '有错误,回滚'
ROLLBACK TRANSACTION--事务回滚语句
END
ELSE
BEGIN
PRINT '成功,提交'
COMMIT TRANSACTION--事务提交语句
END
sql事务处理
BEGIN TRANSACTION--开始事务
DECLARE @errorSun INT --定义错误计数器
SET @errorSun=0 --没错为0
UPDATE a SET id=232 WHERE a=1 --事务操作SQL语句
SET @errorSun=@errorSun+@@ERROR --累计是否有错
UPDATE aa SET id=2 WHERE a=1 --事务操作SQL语句
SET @errorSun=@errorSun+@@ERROR --累计是否有错
IF @errorSun<>0
BEGIN
PRINT '有错误,回滚'
ROLLBACK TRANSACTION--事务回滚语句
END
ELSE
BEGIN
PRINT '成功,提交'
COMMIT TRANSACTION--事务提交语句
END
F. 谁能详细介绍下sql中的“事务 ” ,不要百度答案,写下自己的心得,不胜感激
sql事务就是你在执行update或者insert语句时,信息是否提交的控制,数据库默认是直接提交,如果你一次执行2条sql,第一条成功了,第二条失败了,你肯定想着两条要么都成功,要么都失败,这时候你就要用事务来控制,在两条都成功后,提交事务,否则进行事务回滚
G. 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
H. 两条sql语句事务
你好,SqlServer中可以这样处理:--这里只写关键代码了。。 ...begin transaction --SqlServer默认是自动提交,所以需要开始显示事务declare @errorSum intset @errorSum = 0insert into tab_name values(...) --DML操作set @errorSum = @errorSum + @@error --如果操作发生异常,@@error就会有值insert into tab_name2 values(...)set @errorSum = @errorSum + @@error if @errorSum <> 0 --判断是否发生异常 begin rollback transaction --回滚 endelse begin comit transaction --提交 endgo... oracle简单很多中:begen --DML insert into tab_name values(...) insert into tab_name2 values(...) --没发生异常则提交 comit;exception --发生异常则回滚 WHEN OTHERS THEN
ROLLBACK;end;
I. SQL 事务的编写能不能提供一个实例 不要经常一个sql语句一个提交的那种!
tableA(userID,name) talbeB(id,userID_A,userID_B,proctID,money)
是这样一个结构吧?(这里简化下,不多加个proct表了)
SELECT tableA.name,tableB.proctID,SUM(tableB.money) FROM tableA,tableB WHERE tableA.userID=tableB.userID_A GROUP BY tableB.userID_A
----------------------
在最后面加句“ ORDER BY sum DESC”
最好给SUM(tableB.money)加个别名,如
SUM(tableB.money) AS sum
上面那个ORDER BY sum里面的sum就用这个别名
--------------------------------
给你个网址吧,你学下里面的ORDER用法
顺便说下,最好别用sum这个别名,别与一些关键字重复了,不能学我上面随便举的那个别名例子。
------------------------------------
ORDER BY ss DESC
J. 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)只是作的稍许补充而已,不必深究,呵呵……)