1. -- =============================================
  2. -- Author: <华仔>
  3. -- Create date: <2016,6,7>
  4. -- Description: <鱼种统计>
  5. -- Update_QT_FishTypeCount 0,0,0,0 -- 测试可否正常运行
  6. -- 维护日志:
  7. --
  8. -- =============================================
  9. ALTER PROCEDURE [dbo].[Update_QT_FishTypeCount]
  10. @RoomLevel INT,
  11. @FishType INT,
  12. @AppearNumber INT,
  13. @CatchNumber INT
  14.  
  15. AS
  16. BEGIN
  17.  
  18. SET NOCOUNT ON;
  19.  
  20. BEGIN TRY--错误捕获
  21. BEGIN TRAN; -- 开始事务
  22.  
  23. WITH N AS(
  24. SELECT @RoomLevel AS RoomLevel
  25. ,CONVERT(CHAR(10),GETDATE(),23) AS CountDate
  26. ,@FishType AS FishType
  27. ,@AppearNumber AS AppearNumber
  28. ,@CatchNumber AS CatchNumber
  29. )
  30. MERGE QT_FishTypeCount AS FTC
  31. USING N ON N.CountDate = FTC.CountDate AND N.RoomLevel = FTC.RoomLevel AND N.FishType = FTC.FishType
  32. WHEN NOT MATCHED
  33. THEN INSERT
  34. (
  35. [RoomLevel],
  36. [CountDate],
  37. [FishType],
  38. [AppearNumber],
  39. [CatchNumber]
  40. )
  41. VALUES
  42. (
  43. N.[RoomLevel],
  44. N.[CountDate],
  45. N.[FishType],
  46. N.[AppearNumber],
  47. N.[CatchNumber]
  48. )
  49. WHEN MATCHED
  50. THEN UPDATE SET [AppearNumber] = FTC.[AppearNumber] + @AppearNumber,[CatchNumber] = FTC.[CatchNumber] + @CatchNumber;
  51.  
  52. COMMIT TRAN -- 执行无错误,提交事务
  53. END TRY--错误捕获
  54. BEGIN CATCH--错误捕获
  55. ROLLBACK TRAN -- 执行出错,回滚事务
  56. INSERT INTO [QPAccountsDB].[dbo].[QA_ErrorLog]
  57. ([ErrorNumber]
  58. ,[ErrorSeverity]
  59. ,[ErrorState]
  60. ,[ErrorProcedure]
  61. ,[ErrorLine]
  62. ,[ErrorMessage]
  63. ,[ErrorTime])
  64. SELECT ERROR_NUMBER()
  65. ,ERROR_SEVERITY()
  66. ,ERROR_STATE()
  67. ,'QPTreasureDB.dbo.Update_QT_FishTypeCount'
  68. ,ERROR_LINE()
  69. ,ERROR_MESSAGE()
  70. ,GETDATE()
  71. END CATCH--错误捕获
  72. END

利用Merge生成或更新新记录的更多相关文章

  1. .NET基础篇——利用泛型与反射更新实体(ADO.NET Entity Framework)(转)

    自从ADO.NET Entity Framework面世以来,受到大家的热捧,它封装了大量代码生成的工具,用户只需要建立好实体之间的关系,系统就是会为用户自动成功了Add.Delete.CreateO ...

  2. Java进阶(五十二)利用LOG4J生成服务日志

    Java进阶(五十二)利用LOG4J生成服务日志 前言 由于论文写作需求,需要进行流程挖掘.前提是需要有真实的事件日志数据.真实的事件日志数据可以用来发现.监控和提升业务流程. 为了获得真实的事件日志 ...

  3. 增加一条新记录,同时返回其自增id

    方法一.是在Insert或Update触发器中用select来返回需要的字段值.默认情况下,当insert时,触发其insert触发器,它的默认返回值是影响到的行数,语句是:select @@rowc ...

  4. C# DateTime的11种构造函数 [Abp 源码分析]十五、自动审计记录 .Net 登陆的时候添加验证码 使用Topshelf开发Windows服务、记录日志 日常杂记——C#验证码 c#_生成图片式验证码 C# 利用SharpZipLib生成压缩包 Sql2012如何将远程服务器数据库及表、表结构、表数据导入本地数据库

    C# DateTime的11种构造函数   别的也不多说没直接贴代码 using System; using System.Collections.Generic; using System.Glob ...

  5. 9.利用msfvenom生成木马

    这篇文章来介绍一下msf中一个生成木马的msfvenom模块. msfvenom命令行选项如下: 英文原版: 中文版: Options: -p, --payload <payload> 指 ...

  6. Spring事务管理----声明式:利用TransactionProxyFactoryBean生成事务代理

    通常建议采用声明式事务管理.声明式事务管理的优势非常明显:代码中无需关于关注事务逻辑,让spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换 ...

  7. Oracle 使用MERGE INTO 语句更新数据

    /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,连接条件匹配 ...

  8. 黄聪:利用OpenXml生成Word2007文档(转)

    原文:http://blog.csdn.net/francislaw/article/details/7568317 版权声明:本文为博主原创文章,未经博主允许不得转载.   目录(?)[-] 一Op ...

  9. Swift轻松入门——基本语法介绍和详细地Demo讲解(利用WebView打开百度、新浪等网页)

    转载请务必注明出处(all copyright reserved by iOSGeek) 本文主要分为两个部分,第一部分介绍Swift的基本语法,第二部分讲解一个利用WebView来打开百度.sina ...

随机推荐

  1. Visual Studio 2010打开水晶报表是出现二进制

    水晶报表在64位的机器下未安装成功 解决方法 到http://www.cnblogs.com/siyunianhua/p/4806513.html下载  水晶报表VS2010版IDE安装标准版SAP ...

  2. Selenium 实现联想下拉框

    直接在文本框输入字符,并不能实现联想下拉框, 第一种方式:强制执行js driver.FindElement(By.Id("top_search_input")).SendKeys ...

  3. mac 卸载 XCode

    http://blog.csdn.net/songques/article/details/7244144

  4. shell常用命令总结

    统计文件行数 wc -l filename grep -c "" filename sed -n '$=' filename awk 'END{print NR}' filenam ...

  5. Hadoop框架下MapReduce中的map个数如何控制

    控制map个数的核心源码 long minSize = Math.max(getFormatMinSplitSize(), getMinSplitSize(job)); //getFormatMinS ...

  6. Storm系列(十七)DRPC介绍

    Storm版本0.9.5 在storm中DRPC服务应用于远程分布式计算,根据客户端提交的请求参数,而返回Storm计算的结果. DRPC服务启动流程(远程模式) 启动DRPC服务,启动命令:stor ...

  7. HW2.25

    import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner i ...

  8. hdu5601-N*M bulbs(黑白棋盘染色)

    一个矩形,一个人从左上角走到右下角,每走过一个位置把0变成1,1变成0. 求有没有可能他离开之后所有的数都是0 假设这个矩形是一个棋盘,黑白相间. 这样会发现从一个颜色走到相同颜色可以对棋盘不产生任何 ...

  9. Ⅵ.spring的点点滴滴--自定义类型转换器

    承接上文 自定义类型转换器 .net篇(环境为vs2012+Spring.Core.dll v1.31) public class CustomeConverter : TypeConverter{ ...

  10. 查找无用代码Dead Code的一些心得

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:查找无用代码Dead Code的一些心得.