经典存储过程;SQl 存储过程

简介:

利用存储过程来实现下面的应用: 

从一个账户转指定数额的款项到另一个账户中。

*/ 建表:create table account(accountnum int,uname char(10),total float)             

insert into account values(1001,'u1',50000)            

 insert into account values(1002,'u2',1000)             

 select * from account 


建存储过程:  

CREATE PROCEDURE TRANSFER  

@outAccount int, 

@inAccount int, 

@amount 

FLOAT AS 


     DECLARE  @totalDeposit FLOAT    

BEGIN TRANSACTION                  /* 检查转出账户的余额 */                             SELECT @totalDeposit=total FROM ACCOUNT WHERE ACCOUNTNUM=@outAccount     

    IF @totalDeposit IS NULL    /* 转出账户不存在或账户中没有存款 */       BEGIN                 ROLLBACK TRANSACTION          

    PRINT '转出账户不存在或账户中没有存款,不能操作!' 

 RETURN       

END       


IF @totalDeposit<@amount   /* 转出账户存款不足 */       

BEGIN          

ROLLBACK TRANSACTION          

PRINT '转出账户存款不足,不能操作!'                                /*  建议使用函数RAISERROR('转出账户存款不足,不能操作!',10,1)   */          

RETURN  

END


IF exists(SELECT * FROM ACCOUNT WHERE ACCOUNTNUM=@inAccount )    /* 检查转入账户是否存在 */        BEGIN                             

UPDATE account SET total=total-@amount WHERE ACCOUNTNUM=@outAccount                              /* 修改转出账户,减去转出额 */          

UPDATE account SET total=total+@amount WHERE ACCOUNTNUM=@inAccount                                                   /* 修改转入账户,增加转出额 */          

COMMIT TRANSACTION                 /* 提交转账事务 */          

PRINT '转账成功,谢谢使用本存储过程!'          

RETURN         

END     


ELSE        

BEGIN           

ROLLBACK TRANSACTION            

PRINT '转入账户不存在,不能操作!'          

RETURN        

END 

本文转自程序猿博客51CTO博客,原文链接http://blog.51cto.com/haihuiwei/1704845如需转载请自行联系原作者


365850153

相关文章
|
3月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
|
3月前
|
存储 SQL 缓存
SQL Server存储过程的优缺点
【10月更文挑战第22天】存储过程具有代码复用性高、性能优化、增强数据安全性、提高可维护性和减少网络流量等优点,但也存在调试困难、移植性差、增加数据库服务器负载和版本控制复杂等缺点。
188 1
|
3月前
|
存储 SQL 数据库
Sql Server 存储过程怎么找 存储过程内容
Sql Server 存储过程怎么找 存储过程内容
238 1
|
3月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第17天】SQL Server 存储过程是预编译的 SQL 语句集,存于数据库中,可重复调用。它能提高性能、增强安全性和可维护性,但也有可移植性差、开发调试复杂及可能影响数据库性能等缺点。使用时需权衡利弊。
|
8月前
|
存储 SQL 数据库
数据库sql语句-----游标和存储过程
数据库sql语句-----游标和存储过程
66 1
|
3月前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
70 3
|
3月前
|
存储 SQL 安全
|
3月前
|
存储 SQL 数据库
使用SQL创建视图和存储过程
使用SQL创建视图和存储过程
29 0
|
5月前
|
存储 SQL 安全
【数据库高手的秘密武器:深度解析SQL视图与存储过程的魅力——封装复杂逻辑,实现代码高复用性的终极指南】
【8月更文挑战第31天】本文通过具体代码示例介绍 SQL 视图与存储过程的创建及应用优势。视图作为虚拟表,可简化复杂查询并提升代码可维护性;存储过程则预编译 SQL 语句,支持复杂逻辑与事务处理,增强代码复用性和安全性。通过创建视图 `high_earners` 和存储过程 `get_employee_details` 及 `update_salary` 的实例,展示了二者在实际项目中的强大功能。
55 1
|
5月前
|
JSON 数据格式 Java
化繁为简的魔法:Struts 2 与 JSON 联手打造超流畅数据交换体验,让应用飞起来!
【8月更文挑战第31天】在现代 Web 开发中,JSON 成为数据交换的主流格式,以其轻量、易读和易解析的特点受到青睐。Struts 2 内置对 JSON 的支持,结合 Jackson 库可便捷实现数据传输。本文通过具体示例展示了如何在 Struts 2 中进行 JSON 数据的序列化与反序列化,并结合 AJAX 技术提升 Web 应用的响应速度和用户体验。
157 0

热门文章

最新文章