Sql事务
来源:互联网 发布:淘宝店装修步骤 编辑:程序博客网 时间:2024/05/29 17:57
事务有4个属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)以及持久性(Durability),也称作事务的ACID属性。
创建表 加入数据
CREATE TABLE Money
(ID int NOT NULL PRIMARY KEY,
moneys money NULL
)
SELECT * FROM money
INSERT INTO money VALUES(1,2000),
(2,3000)
创建存储过程 使用存储过程完成事务
CREATE PROC pro_money(
@toID int , --转入账号
@fromID int,--转出账号
@Momery money)--转账金额
AS
--判断账号是否存在
IF EXISTS(SELECT 1 FROM money WHERE id=@fromID)
BEGIN
IF EXISTS(SELECT 1 FROM money WHERE id=@toID)
BEGIN
--判断转出金额是否大于当前余额
IF(SELECT moneys FROM money WHERE id=@fromID)>=@Momery
BEGIN
--开始 事务
BEGIN TRAN
UPDATE money SET moneys-=@Momery WHERE id=@fromID
UPDATE money SET moneys+=@Momery WHERE id=@toID
IF @@ERROR<>0
BEGIN
ROLLBACK TRAN --回滚
PRINT '失败'
END
ELSE
BEGIN
COMMIT TRAN --提交事务
PRINT '成功'
END
END
ELSE
RAISERROR('转账金额大于余额',16,1) raiserror 是用于抛出一个错误
END
ELSE
RAISERROR('转出账号不存在',16,1)
END
ELSE
RAISERROR('转出账号不存在',16,1)
EXEC pro_money 2,3,1 --执行查询结果
- sql事务
- SQL事务
- sql事务
- SQL事务
- SQL --事务
- SQL事务
- SQL事务
- sql事务
- sql 事务
- sql事务
- SQL事务
- sql事务
- sql事务
- SQL事务
- SQL事务
- Sql 事务
- SQL事务
- sql 事务
- leetCode #13 Roman to Integer
- MySQL CAST与CONVERT 函数的用法
- 系统的优化思路
- Smart OS风起云——云计算解决方案
- 微信卡券开发
- Sql事务
- ios-day11-06(使用代码的方式创建导航控制器——UINavigationController、使用导航控制器管理其他控制器)
- <转+备份>Cocos2d-x精灵加亮及灰度调整
- PspCidTable
- 《iOS总结》数据持久化
- 编译Windows版Nginx(笔记)
- cookie详解
- IOS8关于本地通知
- find ,find_first_of , find_if , adjacent_find的使用