当前位置:首页 » 存储配置 » sql存储过程使用事务

sql存储过程使用事务

发布时间: 2022-05-11 00:44:05

1. 在sql存储过程的一般语法是什么

1、 创建语法

createproc|procerepro_name

[{@参数数据类型}[=默认值][output],

{@参数数据类型}[=默认值][output],

....

]

as

SQL_statements

2、 创建不带参数存储过程

--创建存储过程

if(exists(select*fromsys.objectswherename='proc_get_student'))

dropprocproc_get_student

go

createprocproc_get_student

as

select*fromstudent;

--调用、执行存储过程

execproc_get_student;

3、 修改存储过程

--修改存储过程

alterprocproc_get_student

as

select*fromstudent;

4、 带参存储过程

--带参存储过程

if(object_id('proc_find_stu','P')isnotnull)

dropprocproc_find_stu

go

createprocproc_find_stu(@startIdint,@endIdint)

as

select*fromstudentwhereidbetween@startIdand@endId

go

execproc_find_stu2,4;

5、 带通配符参数存储过程

--带通配符参数存储过程

if(object_id('proc_findStudentByName','P')isnotnull)

dropprocproc_findStudentByName

go

createprocproc_findStudentByName(@namevarchar(20)='%j%',@nextNamevarchar(20)='%')

as

select*fromstudentwherenamelike@nameandnamelike@nextName;

go

execproc_findStudentByName;execproc_findStudentByName'%o%','t%';

(1)sql存储过程使用事务扩展阅读:

SQL存储过程优点:

1、重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。

2、减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。

3、安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。

2. sql server中怎么在存储过程中使用事务

给你个地址,

自己去看吧

http://wenku..com/link?url=Y-efYbVvDugMDVbUxa-wcU_7NzX25vVNQNT3yoTUf5ZA199t__GigT3boo0jR3W7joluDV47

3. Java调用SQL存储过程、事务

例示一个不带参数的简单存储过程。多数存储过程的功能比本例复杂多了,但这里主要说明存储过程的一些基本要点。如前面所述,不同DBMS定义存储过程的语法是不同的。例如,有些DBMS使用begin
.
.
.
end或其他关键字指明存储过程定义的开始和结束。在有些DBMS中,下面的SQL语句可创建一个存储过程:
create
procere
SHOW_SUPPLIERS
as
select
SUPPLIERS.SUP_NAME,
COFFEES.COF_NAME
from
SUPPLIERS,
COFFEES
where
SUPPLIERS.SUP_ID
=
COFFEES.SUP_ID
order
by
SUP_NAME
下面的代码将SQL语句放到一个字符串中,然后赋给变量createProcere以备后用:
String
createProcere
=
"create
procere
SHOW_SUPPLIERS
"
+
"as
"
+
"select
SUPPLIERS.SUP_NAME,
COFFEES.COF_NAME
"
+
"from
SUPPLIERS,
COFFEES
"
+
"where
SUPPLIERS.SUP_ID
=
COFFEES.SUP_ID
"
+
"order
by
SUP_NAME";
下面的代码段使用Connection对象con来创建Statement对象,用于把创建存储过程的SQL语句发送给数据库:
Statement
stmt
=
con.createStatement();
stmt.executeUpdate(createProcere);
存储过程SHOW_SUPPLIERS将作为一个可调用的数据库对象在数据库中编译并存储,调用时就像调用其他方法一样。

4. SQL 存储过程运用事物的意义

事务用来维护数据的一致性。
比如某人员表有记录:

BH XM
001 张三

同时工资表有记录:

RYBH GZ
001 2000

那么如果想修改人员表BH字段的值,应该同时修改工资表RYBH字段的值,运用事务就可以保证这两个修改操作“同时得到执行”或“同时未得到执行”。

5. 在pl/sql中创建的存储过程中的事务是什么

如果p1是调用p2后,再进行dml操作
先执行p2的
既然p2中向外抛出错误
你可以在p1中
捕获到异常rollback下即可

6. SQL的存储过程中的事物处理是begin tran 还是begin transaction

俩个都行,tran是transaction的简写形式,就想存储过程:proc是process的简写一样的.

7. SQL的存储过程和事务这两者一般在什么情况下使用

存储过程(主要有插入记录、删除记录、修改记录等)主要用于在程序中调用,这程调用在网络应用程序中可以减少网络传输流量,提高程序执行效率。
以下是我以前在网上找的:
事务有四个特性
事务的原子性、一致性、独立性及持久性
事务的原子性是指一个事务要么全部执行,要么不执行
事务的一致性是指事务的运行并不改变数据库中数据的一致性.
事务的独立性是指两个以上的事务不会出现交错执行的状态.
事务的持久性是指事务运行成功以后,就系统的更新是永久的.不会无

8. SQL 存储过程和事务问题

自定义的存储过程: 常用格式 Create procere procee_name [@parameter data_type][output] [with]{recompile|encryption} as sql_statement解释: output:表示此参数是可传回的with {recompile|encryption}recompile:表示每次执行此存储过程时都重新编译一次encryption:所创建的存储过程的内容会被加密如: 表book的内容如下 编号 书名 价格 001 C语言入门 $30 002 PowerBuilder报表开发 $52 实例1:查询表Book的内容的存储过程 create proc query_book as select * from book go exec query_book 实例2:加入一笔记录到表book,并查询此表中所有书籍的总金额 Create proc insert_book @param1 char(10),@param2 varchar(20),@param3 money,@param4 money output with encryption ---------加密 as insert book(编号,书名,价格) Values(@param1,@param2,@param3) select @param4=sum(价格) from book go 执行例子: declare @total_price money exec insert_book '003','Delphi 控件开发指南',$100,@total_price print '总金额为'+convert(varchar,@total_price) go存储过程的3种传回值: 1.以Return传回整数 2.以output格式传回参数 3.Recordset传回值的区别: output和return都可在批次程式中用变量接收,而recordset则传回到执行批次的客户端中 实例3:设有两个表为Proct,Order,其表内容如下: Proct 产品编号 产品名称 客户订数 001 钢笔 30 002 毛笔 50 003 铅笔 100 Order 产品编号 客户名 客户订金 001 南山区 $30 002 罗湖区 $50 003 宝安区 $4请实现按编号为连接条件,将两个表连接成一个临时表,该表只含编号.产品名.客户名.订金.总金额,总金额=订金*订数,临时表放在存储过程中代码如下: Create proc temp_sale as select a.产品编号,a.产品名称,b.客户名,b.客户订金,a.客户订数* b.客户订金 as总金额 into #temptable from Proct a inner join Order b on a.产品编号=b.产品编号 if @@error=0 print 'Good' else print 'Fail' go来源: http://www.knowsky.com

9. sql中的存储过程里怎么写事务回滚啊

CREATE PROC [dbo].[notice_Delete] --- 同时删除该通知书和对应的节点
@tbl VARCHAR(30),
@pid INT
AS
BEGIN
DECLARE @tblname VARCHAR(30) ;
DECLARE @sql VARCHAR(1000) ;
SET @tblname = @tbl
SET @sql = 'delete ' + @tblname + ' where id ='
+ CONVERT(VARCHAR(10), @pid)

BEGIN TRAN --开始事务

EXEC ( @sql
)
IF ( @@rowcount = 0 ) --执行结果影响行数为0
BEGIN
ROLLBACK TRAN --回滚
END
ELSE
BEGIN
DELETE FROM tbl_treenotice
WHERE purposeid = @pid
IF ( @@rowcount = 0 ) --执行结果影响行数为0
BEGIN
ROLLBACK TRAN --回滚
END
ELSE
BEGIN
COMMIT TRAN --提交事务
END
END
END

热点内容
微信的密码有什么组成 发布:2024-11-16 17:49:41 浏览:628
服务器如何加载无线网卡 发布:2024-11-16 17:49:39 浏览:953
vps如何配置ftp 发布:2024-11-16 17:46:39 浏览:908
mysql存储过程注入 发布:2024-11-16 17:44:53 浏览:171
十一代思域入门版都是什么配置详细介绍 发布:2024-11-16 17:44:47 浏览:473
行为分析算法 发布:2024-11-16 17:39:20 浏览:511
商道高手安卓哪个服比较好 发布:2024-11-16 17:26:52 浏览:359
访问造句二年级 发布:2024-11-16 17:20:27 浏览:886
阿里云的tcp服务器ip和端口 发布:2024-11-16 17:12:30 浏览:177
php专业培训 发布:2024-11-16 17:10:07 浏览:125