国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

臨時表在特定的條件下同樣可以靈活易用

2024-07-21 02:43:13
字體:
來源:轉載
供稿:網友
本文介紹了一個四用戶同步更新的存儲過程實例,通過這個實例的學習,你可以發現臨時表在某種條件下也可以是靈活易用的,在數據量小的時候,它并不會顯現出臨時表速度不行的問題。

SET QUOTED_IDENTIFIER ON GOSET ANSI_NULLS ON GO/*Name:游戲中四人數據同時更新Designed By :whboDesigned At :2005-10-12Modified By :Modified At :Memo:*/ALTER   PROC [PrMoney_UpdateCash2]@chvModeName varchar(16),@chvSourceName varchar(64),@chvRemark varchar(128),@intUserID1 int,@intUserID2 int,@intUserID3 int,@intUserID4 int,@intWantedAmount1 int,@intWantedAmount2 int,@intWantedAmount3 int,@intWantedAmount4 int,@chvipAddress1 varchar(15),@chvIPAddress2 varchar(15),@chvIPAddress3 varchar(15),@chvIPAddress4 varchar(15),@inyLog tinyintasset nocount on set xact_abort onDeclare @intCashAmount1 int,@intCashAmount2 int,@intCashAmount3 int,@intCashAmount4 intDeclare @FRate float,@FTemp floatDeclare @bNeedReCalc bit  --0:不用重算 ;1:需要重算set @FRate=1.0set @FTemp=1.0set @bNeedReCalc=0Declare @FTemp1 float,@FTemp2 float,@FTemp3 float,@FTemp4 float--這里要注意,更新用戶現金取數據庫中的數據,跟游戲服務器能否保持一致--取得用戶現金select @intCashAmount1=[Amount] from [dbo].[Money] where [UserID]=@intUserID1select @intCashAmount2=[Amount] from [dbo].[Money] where [UserID]=@intUserID2select @intCashAmount3=[Amount] from [dbo].[Money] where [UserID]=@intUserID3select @intCashAmount4=[Amount] from [dbo].[Money] where [UserID]=@intUserID4Create Table #Temp1(TTemp float)if @intCashAmount1+@intWantedAmount1<0  begin  set @FTemp=-@intCashAmount1/@intWantedAmount1  insert into #temp1 values(@FTemp) endif @intCashAmount2+@intWantedAmount2<0 begin  set @FTemp=-@intCashAmount2/@intWantedAmount2  insert into #temp1 values(@FTemp) endif @intCashAmount3+@intWantedAmount3<0 begin  set @FTemp=-@intCashAmount3/@intWantedAmount3  insert into #temp1 values(@FTemp) endif @intCashAmount4+@intWantedAmount4<0 begin  set @FTemp=-@intCashAmount4/@intWantedAmount4  insert into #temp1 values(@FTemp) endset @FTemp=(select min(@FTemp) from #temp)drop table #temp1if @FTemp<@FRatebegin set @FRate=@FTemp set @BNeedReCalc=1endif @BNeedReCalc=1 begin set @intWantedAmount1=@intWantedAmount1*@FRate set @intWantedAmount2=@intWantedAmount2*@FRate set @intWantedAmount3=@intWantedAmount3*@FRate set @intWantedAmount4=@intWantedAmount4*@FRateendbegin tranexec [prMoney_UpdateCash] @chvModeName,   -- 通過什么方式,如'WEB'、'GameServer'等 @chvSourceName,  -- 方式的源,如'金幣麻將服務器'、'虛擬股市'等 @chvRemark,  -- 其它信息 注釋. @intUserID1,    -- 用戶ID 0, -- 相關的用戶ID @intWantedAmount1,   -- 希望更新的數量(>0 加金, <0 扣金) 0,    -- 稅金(稅金>0,要在現金中扣除,游戲服務器可以置為0) @chvIPAddress1,  -- IP地址 0, -- 機器碼 1    -- 是否做Log,如果>0,則表示做Log,否則不做Logexec [prMoney_UpdateCash] @chvModeName,   -- 通過什么方式,如'WEB'、'GameServer'等 @chvSourceName,  -- 方式的源,如'金幣麻將服務器'、'虛擬股市'等 @chvRemark,  -- 其它信息 注釋. @intUserID2,    -- 用戶ID 0, -- 相關的用戶ID @intWantedAmount2,   -- 希望更新的數量(>0 加金, <0 扣金) 0,    -- 稅金(稅金>0,要在現金中扣除,游戲服務器可以置為0) @chvIPAddress2,  -- IP地址 0, -- 機器碼 1    -- 是否做Log,如果>0,則表示做Log,否則不做Logexec [prMoney_UpdateCash] @chvModeName,   -- 通過什么方式,如'WEB'、'GameServer'等 @chvSourceName,  -- 方式的源,如'金幣麻將服務器'、'虛擬股市'等 @chvRemark,  -- 其它信息 注釋. @intUserID3,    -- 用戶ID 0, -- 相關的用戶ID @intWantedAmount3,   -- 希望更新的數量(>0 加金, <0 扣金) 0,    -- 稅金(稅金>0,要在現金中扣除,游戲服務器可以置為0) @chvIPAddress3,  -- IP地址 0, -- 機器碼 1    -- 是否做Log,如果>0,則表示做Log,否則不做Logexec [prMoney_UpdateCash] @chvModeName,   -- 通過什么方式,如'WEB'、'GameServer'等 @chvSourceName,  -- 方式的源,如'金幣麻將服務器'、'虛擬股市'等 @chvRemark,  -- 其它信息 注釋. @intUserID4,    -- 用戶ID 0, -- 相關的用戶ID @intWantedAmount4,   -- 希望更新的數量(>0 加金, <0 扣金) 0,    -- 稅金(稅金>0,要在現金中扣除,游戲服務器可以置為0) @chvIPAddress4,  -- IP地址 0, -- 機器碼 1    -- 是否做Log,如果>0,則表示做Log,否則不做Logcommit tranreturn 1GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东城区| 唐山市| 巴楚县| 全州县| 中西区| 织金县| 鱼台县| 洮南市| 祁东县| 探索| 德兴市| 信宜市| 渝中区| 宁南县| 南郑县| 永胜县| 射洪县| 乐业县| 衡东县| 平潭县| 通化县| 磴口县| 农安县| 甘肃省| 淄博市| 奉节县| 大理市| 阜康市| 凯里市| 庄浪县| 尚义县| 长汀县| 定兴县| 措勤县| 岳普湖县| 新昌县| 麟游县| 都昌县| 福贡县| 福州市| 新兴县|