`
ttwang
  • 浏览: 329849 次
  • 性别: Icon_minigender_2
社区版块
存档分类
最新评论

事务简单例子

    博客分类:
  • SQL
阅读更多
以前数据库操作,我是很少用事务的,最近做一个项目,发现偶尔总是少一些数据没有写入到数据库,也没有报错误,看了半天,也不知道是什么原因,后来把一条insert语句分成两条写,就好了,数据就没有丢失了,怀疑和写入的字段太大有关系。后来考虑还是不保险啊,就直接用事务了。

下面这个就是我写的一个简单的事务的例子。是单位就餐补助查询用的,主要是根据就餐的记录判断餐别,对不同的人增加补助,就是一个运算而已,以前财务用电子表格也能做,看着电子表格忙活半天,又心有不忍,做了个简单的查询,也讲将就了。

CREATE PROCEDURE [dbo].[AddBZmoney] AS---确定就餐类型和补助金额
begin
begin tran

insert into SumBZ(卡号,日期,餐别,就餐金额)--汇总每日就餐明细

SELECT Detail.卡号, Detail.就餐日期, dbo.GetBZType(Detail.就餐时间) AS 餐别, --查询就餐金额
      SUM(Detail.消费金额) AS 消费金额
FROM Detail INNER JOIN
      BZType ON dbo.GetBZType(Detail.就餐时间) = BZType.餐别
WHERE (Detail.状态 = 0)
GROUP BY Detail.就餐日期, dbo.GetBZType(Detail.就餐时间), Detail.卡号

update Detail set 状态=1 where 状态=0--更新补助状态

create table TempBZ--建立中间表,确定补助的金额
(
ID int,
BZmoney money
)

insert into TempBZ
SELECT SumBZ.ID,
CASE
WHEN SumBZ.就餐金额 >= BZType.补助标准 and People.加班补助=1 and SumBZ.餐别='晚餐'THEN BZType.补助标准--晚餐有加班补助的,超过4元补4元
when SumBZ.就餐金额 >= BZType.补助标准 and People.加班补助=0 and SumBZ.餐别='晚餐'then 0--晚餐无加班补助的,补0元
when SumBZ.就餐金额 >= BZType.补助标准 and SumBZ.餐别='午餐' then BZType.补助标准--午餐全部超过3元的,补3元
when  SumBZ.餐别='早餐' then BZType.补助标准--早餐不补
WHEN SumBZ.就餐金额 < BZType.补助标准 THEN 0--未超过补助额度的不补
end
FROM SumBZ INNER JOIN
      BZType ON SumBZ.餐别 = BZType.餐别 inner join People On People.卡号=SumBZ.卡号

declare @i int
set @i=(select min(ID) from TempBZ)
while @i<=(select max(ID) from TempBZ)
begin
update SumBZ set 补助金额=(select BZmoney from TempBZ where ID=@i) where ID=@i
set @i=@i+1
end
drop table TempBZ
if (@@error!=0)
begin
rollback tran
return(1)
end
commit tran
end
GO
分享到:
评论

相关推荐

    asp.net sql事务简单实例

    本实例是关于在ASP.NET中使用C#处理SQL事务的一个简单示例,非常适合初学者学习。在实际应用中,SQL事务经常用于执行涉及多条记录的复杂操作,如转账、订单处理等,这些操作需要确保要么所有更改都保存,要么在发生...

    spring 简单实例 事务回滚

    在这个“spring简单实例 事务回滚”的案例中,我们将深入探讨Spring如何处理事务回滚,以及它是如何在Java源码层面实现这一功能的。 首先,让我们理解什么是事务。在数据库操作中,事务是确保数据一致性的重要机制...

    简单的c#事务回滚实例代码

    本实例将详细讲解如何在C#中实现简单的事务回滚功能,以应对在执行多条SQL语句时可能出现的错误。 首先,我们需要理解事务的基本概念。事务是数据库操作的基本单元,它包含一组操作,这些操作要么全部成功,要么...

    Spring 事务简单完整例子

    本文将深入探讨在Spring框架中如何管理事务,以“Spring 事务简单完整例子”为出发点,结合标签“spring,事务,jdbc事务”,我们将详细解释Spring事务管理的原理和实践。 首先,Spring提供了两种事务管理方式:编程...

    Java 事务详解及简单应用实例

    以下是一个简单的事务管理示例: ```java public int delete(int sID) { // 获取数据库连接 DataBaseConnection dbc = new DataBaseConnection(); Connection con = dbc.getConnection(); try { // 关闭自动...

    jta分布式事务完成例子,测试通过

    此例子简单易读,解压后放入eclipse或myeclipse即可运行。例子虽小,可覆盖面广,设计spring载入.properties文件,spring配置jta和jotm分布式事务,设置数据源连接池,注解事务驱动。功能是在mysql上建立了两个...

    C#调用SQL Server事务的简单实例

    本教程将深入讲解如何在C#中调用SQL Server的事务,确保数据操作的一致性和完整性。我们将探讨两种不同的方法来实现这一目标。 首先,让我们了解SQL Server事务的基本概念。事务是数据库操作的逻辑单位,它包含一组...

    nop简单的事务实现.rar_nop简单的事务实现

    描述提到这是一个小例子,可能包含了一个简单的代码示例,用于演示如何在某种编程语言或框架中实现事务管理。然而,由于没有附带的Nop事务测试文档,我们无法详细了解具体的实现细节和测试方法,这可能会对理解整个...

    Spring使用TransactionProxyFactoryBean声明式事务配置实例

    在这个例子中,所有以"update"开头的方法将在PROPAGATION_REQUIRED传播行为下运行,这意味着如果当前没有事务,就会新建一个;而其他所有方法则在PROPAGATION_REQUIRED传播行为下运行,并且设置了readOnly属性,表明...

    spring学习笔记(十五)-编程式事务例子

    下面是一个简单的编程式事务管理示例: ```java @Autowired private PlatformTransactionManager transactionManager; public void serviceMethod() { TransactionDefinition def = new ...

    Spring+Hibernate注解事务实例

    这个实例将涵盖如何创建一个简单的Spring+Hibernate项目,设置事务管理,编写带有@Transactional注解的服务类,以及对应的DAO类。同时,你还会学到如何在单元测试中验证事务处理的正确性。 通过实践这个实例,你...

    Java事务的简单代码

    在Java编程中,事务管理是确保数据库操作一致性、原子性和持久性的关键机制。当我们谈论"Java事务"时,...通过学习这个简单的代码示例,初学者可以开始探索如何在Java中实现事务控制,并逐渐掌握更复杂的事务管理策略。

    Spring事务例子

    通过运行这些例子,你将对Spring事务管理有更深入的理解,知道何时选择编程式还是声明式事务,以及如何有效地处理事务异常。 总之,Spring的事务管理是其强大功能的一部分,无论是编程式还是声明式,都能帮助开发者...

    spring 自定义事务管理器,编程式事务,声明式事务@Transactional使用

    以下是一个简单的编程式事务示例: ```java @Autowired private PlatformTransactionManager transactionManager; public void serviceMethod() { TransactionDefinition def = new DefaultTransactionDefinition...

    JDBC事务操作例子所需jar包

    以下是一个简单的JDBC事务处理示例代码: ```java import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; public class TransactionExample { public static void ...

    springmvc4简单例子

    在"springmvc4简单例子"中,我们通常会涉及到以下几个关键知识点: 1. **配置**:首先,你需要配置Spring MVC的DispatcherServlet,这是Spring MVC应用的入口点。在`web.xml`中,你会看到类似下面的配置,用于初始...

    struts2简单实例

    总结,"struts2简单实例"展示了如何使用Struts2框架构建一个简单的学生信息查询功能,涵盖了配置文件、Action实现、数据传输以及视图展示等多个方面,是学习和理解Struts2工作原理的好例子。通过这个实例,开发者...

    简单的银行转账就是实现事务管理

    本文将深入探讨"简单的银行转账就是实现事务管理"这一主题,以及与之相关的知识点。 首先,我们需要理解什么是事务。在计算机科学中,事务是一个逻辑工作单元,它包含一组数据库操作。这些操作要么全部执行,要么...

    简单spring aop 例子

    现在,我们来看如何创建一个简单的Spring AOP例子: 1. **定义切面(Aspect)**:切面是包含通知(Advice)和切入点(Pointcut)的类。通知定义了要执行的逻辑,切入点定义了何时执行。例如,我们可以创建一个名为`...

    springmvc注解简单实例

    在这个"springmvc注解简单实例"中,我们将深入探讨Spring MVC中的一些关键注解,以及它们在DAO层、Service层和Controller层中的应用。让我们逐一解析这些层面的注解使用。 首先,我们来到**DAO层**。在Spring MVC中...

Global site tag (gtag.js) - Google Analytics