hl8882 发表于 2009-2-16 18:15:34

军团联盟问题解决方法(储存过程)收点收集费用,不是本人发现的,也是转来的

本帖最后由 hl8882 于 2009-2-16 20:07 编辑

收点收集费用,不是本人发现的,也是转来的
/****** Object:Stored Procedure dbo.UPDATE_KNIGHTS_ALLIANCE    Script Date: 6/6/2006 6:03:32 PM ******/

-- Created By Sungyong 2003.06.18

CREATE PROCEDURE UPDATE_KNIGHTS_ALLIANCE
@byType                tinyint,
@shAlliancIndex                smallint,
@shKnightsIndex      smallint,
@byEmptyIndex                tinyint,
@bySiegeFlag                tinyint

AS

DECLARE @SubKnightsIndex smallint
DECLARE @MercenaryClan_1 smallint
DECLARE @MercenaryClan_2 smallint
SET @SubKnightsIndex = 0
SET @MercenaryClan_1 = 0
SET @MercenaryClan_2 = 0

IF @byType = 44               
BEGIN
      INSERT INTO KNIGHTS_ALLIANCE (sMainAllianceKnights,sSubAllianceKnights,sMercenaryClan_1,sMercenaryClan_2) VALUES (@shAlliancIndex,0,0,0)
      UPDATE KNIGHTS SET bySiegeFlag = @bySiegeFlag, sAllianceKnights = @shAlliancIndex WHERE IDNum = @shAlliancIndex
END
ELSE IF @byType = 46               
BEGIN
      IF @byEmptyIndex = 1      
      BEGIN
                UPDATE KNIGHTS_ALLIANCE SET sSubAllianceKnights = @shKnightsIndex WHERE sMainAllianceKnights = @shAlliancIndex      
                UPDATE KNIGHTS SET bySiegeFlag = @bySiegeFlag, sAllianceKnights = @shAlliancIndex WHERE IDNum = @shKnightsIndex      
      END
      IF @byEmptyIndex = 2      
      BEGIN
                UPDATE KNIGHTS_ALLIANCE SET sMercenaryClan_1 = @shKnightsIndex WHERE sMainAllianceKnights = @shAlliancIndex      
                UPDATE KNIGHTS SET bySiegeFlag = @bySiegeFlag, sAllianceKnights = @shAlliancIndex WHERE IDNum = @shKnightsIndex      
      END
      IF @byEmptyIndex = 3      
      BEGIN
                UPDATE KNIGHTS_ALLIANCE SET sMercenaryClan_2 = @shKnightsIndex WHERE sMainAllianceKnights = @shAlliancIndex      
                UPDATE KNIGHTS SET bySiegeFlag = @bySiegeFlag, sAllianceKnights = @shAlliancIndex WHERE IDNum = @shKnightsIndex      
      END
END
ELSE IF @byType = 47 or @byType =48               
BEGIN
      SELECT @SubKnightsIndex=sSubAllianceKnights, @MercenaryClan_1= sMercenaryClan_1,@MercenaryClan_2= sMercenaryClan_2 FROM KNIGHTS_ALLIANCE WHERE sMainAllianceKnights = @shAlliancIndex
      IF @SubKnightsIndex = @shKnightsIndex      
      BEGIN
                UPDATE KNIGHTS_ALLIANCE SET sSubAllianceKnights = 0 WHERE sMainAllianceKnights = @shAlliancIndex      
      END
      IF @MercenaryClan_1 = @shKnightsIndex      
      BEGIN
                UPDATE KNIGHTS_ALLIANCE SET sMercenaryClan_1 = 0 WHERE sMainAllianceKnights = @shAlliancIndex      
      END
      IF @MercenaryClan_2 = @shKnightsIndex      
      BEGIN
                UPDATE KNIGHTS_ALLIANCE SET sMercenaryClan_2 = 0 WHERE sMainAllianceKnights = @shAlliancIndex      
      END

      UPDATE KNIGHTS SET bySiegeFlag = 0, sAllianceKnights = 0 WHERE IDNum = @shKnightsIndex      
END
ELSE IF @byType = 49                -- destory alliance
BEGIN
      SELECT @SubKnightsIndex=sSubAllianceKnights, @MercenaryClan_1= sMercenaryClan_1,@MercenaryClan_2= sMercenaryClan_2 FROM KNIGHTS_ALLIANCE WHERE sMainAllianceKnights = @shAlliancIndex

      UPDATE KNIGHTS SET bySiegeFlag = 0, sAllianceKnights = 0 WHERE IDNum = @shAlliancIndex      

      IF @SubKnightsIndex <> 0
      BEGIN
                UPDATE KNIGHTS SET bySiegeFlag = 0, sAllianceKnights = 0 WHERE IDNum = @SubKnightsIndex      
      END
      IF @MercenaryClan_1 <> 0
      BEGIN
                UPDATE KNIGHTS SET bySiegeFlag = 0, sAllianceKnights = 0 WHERE IDNum = @MercenaryClan_1
      END
      IF @MercenaryClan_2 <> 0
      BEGIN
                UPDATE KNIGHTS SET bySiegeFlag = 0, sAllianceKnights = 0 WHERE IDNum = @MercenaryClan_2
      END

      DELETE FROM KNIGHTS_ALLIANCE WHERE sMainAllianceKnights = @shAlliancIndex      
END
GO

hackerneo 发表于 2009-2-16 18:42:26

only 发表于 2009-2-16 20:26:06

是好东西

aiiq 发表于 2009-2-16 23:38:24

这是好东西

ryan6755 发表于 2009-2-17 11:48:42

整段代码就看懂了个 "GO"   OMG~!

njsun 发表于 2009-3-21 16:23:15

没钱买不起哦!

zxas888 发表于 2009-3-21 17:26:27

{:1_203:} 是好东西

evaydd 发表于 2009-3-23 15:26:11

好东西。谢谢大大

yangwx 发表于 2009-3-24 23:49:01

值得收藏。。
页: [1]
查看完整版本: 军团联盟问题解决方法(储存过程)收点收集费用,不是本人发现的,也是转来的