经典存储过程;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语句,索引,视图,存储过程
sql语句,索引,视图,存储过程
30 0
|
3月前
|
存储 SQL 缓存
4.2.1 SQL语句、索引、视图、存储过程
4.2.1 SQL语句、索引、视图、存储过程
|
1月前
|
存储 SQL 数据库
sql serve存储过程
sql serve存储过程
14 0
|
1月前
|
存储 SQL
物料清单应用输入模板的SQL存储过程设计
物料清单应用输入模板的SQL存储过程设计
|
3月前
|
存储 SQL Oracle
PL/SQL存储过程的使用
PL/SQL存储过程的使用
67 1
|
4月前
|
存储 SQL Oracle
|
4月前
|
存储 SQL 定位技术
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
数据库基础(六):T-SQL语言程序设计、游标定义与使用及存储过程创建与信息查找
|
4月前
|
存储 SQL 数据库
数据库第十二次作业 存储过程(PL/SQL语句集)的应用
数据库第十二次作业 存储过程(PL/SQL语句集)的应用
31 0
|
5月前
|
SQL 存储 Oracle
Oracle如何使用PL/SQL调试存储过程
Oracle如何使用PL/SQL调试存储过程
111 0
|
8月前
|
存储 SQL 关系型数据库
【MySQL】探索MySQL存储过程的魔力,初学者的数据库编程秘笈(内含实战SQL脚本)下
【MySQL】探索MySQL存储过程的魔力,初学者的数据库编程秘笈(内含实战SQL脚本)
146 1