当前位置:首页 » 服务存储 » 存储过程事务
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

存储过程事务

发布时间: 2022-01-26 11:18:56

sql 存储过程和事务问题

事务格式
CREATE PROCEDURE PRO_NAME(
P1 NVARCHAR(10)
P2 INT
)
AS
BEGIN TRANSACTION --开始事务
SQL 语句
IF @@ERROR<>0 --有错误
ROLLBACK TRANSACTION
ELSE
COMMIT TRANSACTION
GO

❷ oracle 一个存储过程可以包含几个事务,为什么

每一个commit前都是一个事务。

至于为什么?因为Oracle支持事务啊。

❸ 存储过程和事务有什么区别和联系

事务中可以有存储过程 存储过程中也可以有事务 事务是一系列的对数据库的操作,这些操作包括存储过程,更改语句及其它操作。开始语句是BEGIN TRANSACTION (事务开始),结束语句有两种,一个是ROLLBACK--回滚,一个是--commit提交事务的所有操作。 存储过程是实现一定功能的语句组成的程序段。可以包括事务,也可以在某事务当中。 这是一个包括一个事务处理过程的存储过程,并且在事务中也包括另一个存储过程的操作: CREATTE PROCEDURE MYPROCEDURE AS BEGIN TRANSACTION--开始一个事务 UPDATE TABLENAME SET ABC='DEF' WHERE ......--操作 EXEC OTHERPROCEDURE '参数' --事务中包括的存储过程 IF @@ERROR>0--操作如果失败 BEGIN ROLLBACK TRANSACTION--回滚 RAISERROR('更改数据失败!

❹ oracle 存储过程事务控制

把第一个commit去掉既可,如下:

create or replace procere aaa is
var2 number;
begin SELECT Seq_Tbtopic.nextval INTO var2 FROM al;
insert into tbTopic values (var2 , 1, 1, '口语3333',1,3,2,'','');

insert into tbchildtopic values (Seq_Tbchildtopic.Nextval,var2,'','ck','/kangsi/Resource/test/B1/1_2_2_1_Emily_ck_.mp3','ck');

commit;
end aaa;

❺ SQL的存储过程和事务是怎么回事

存储过程就相当于编程语言中的函数或方法,根据用户给定的参数执行一段代码
例:你给我20分,我从键盘输入文字,回答问题,并提交答案.我所做的就是一个存储过程,你给的20分是参数,你给的分多,我就回答的详细
事务是一种机制,确保一组数据库命令,要么全都执行,要么都不执行
例:你到银行转帐1000元到我的账户里,当钱刚从你的账户里取出来(还没来的及转入我的账户),突然断电了,这时你的账户就莫名其妙的损失了1000元,事务就是为了避免这种情况,只有当你的账户减少1000,并且我的账户存入1000之后,这个转帐才算成功,所以就要将"存款"和"取款"写到一个事务中去

❻ 多个存储过程可否在一个事务中

谢谢,意思 在任何子存储过程只要不加COMMIT ,EXCEPTION 代码,一旦任何一个子存储过程有任何异常都会自动抛到最外层,然后由主存储过程回滚,那么最外层的主存储过程需要加EXCEPTION,COMMIT代码么?
我理解,猜想啊,主存储,子存储都不加COMMIT,EXCEPTION,全部交给ORACLE 去处理,那么ORACLE 就默认采取一个事务了,只要一个子存储有异常,那么,整个事务就回滚,YES/NO?

❼ mysql 存储过程怎么设置事务

CREATE DEFINER=`root`@`localhost` PROCEDURE `createBusiness`(parameter1 int)
BEGIN
#Routine body goes here...
DECLARE flag int DEFAULT parameter1;#声明变量flag,将参数值赋给该变量
DECLARE uuidStr VARCHAR(32);#声明一个长度为32位的字符串
DECLARE currentTime TIMESTAMP;#声明一个类型为时间戳的变量
declare err INT default 0;#声明一个整形变量err,默认值是0
declare continue handler for sqlexception set err=1;#当sqlexception handler捕捉到异常时,设置err=1

START TRANSACTION;#开始事务
WHILE flag>0 DO #注意: while不能空实现(在while块中,里面必须有语句)
#uuid()函数得到的字符串是'6ccd780c-baba-1026-9564-0040f4311e29',剔除里面的-,得到一个32位的字符串
SET uuidStr = REPLACE(UUID(),'-','') ;
#得到当前的时间
SET currentTime = CURRENT_TIMESTAMP();
#执行插入语句,注意连接字符串的函数concat(str1,str2,...);其中str..也可以是数字类型
INSERT INTO
表名称
(id,title,keyword,hasImage,isTodayHead,isShowInHome,isBigness,publishTime,originId,modify_time,isAnalysis)
VALUE
(uuidStr,CONCAT('事件标题',flag),CONCAT('关键字',flag),1,1,0,0,currentTime,CONCAT('xxxxxxx',flag),currentTime,1);
#每循环一次,flag要减去1,注意没有flag--的语法
set flag = flag-1;
#在这里测试当err=1时,事务是否有了回滚,测试ok
#IF flag=7 THEN #注意在procere中给变量赋值要用到set,或在变量声明时用default来父子,所以=号可以用来比较两边的值是否相等,<=>也可,区别先不去纠结。
#set err=1;
#END if;
END WHILE;

IF (err=0) THEN
commit;
select 'OK';
ELSE
rollback;
select 'err';
END IF;
END;

❽ 什么时候用事务,什么时候用存储过程

存储过程是:
通过一系列的SQL语句,
根据传入的参数(也可以没有),
通过简单的调用,
完成比单个SQL语句更复杂的功能,
存储在数据库中的SQL程序段。

事务是一系列的数据更改操作组成的一个整体。一旦事务中包含的某操作失败或用户中止,用户可以控制将事务体中所有操作撤消,返回事务开始前的状态。
事务中的操作是一个整体,要么整体完成,要么全部不做。从而保证了数据的完整性。