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