| 本帖最后由 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
 |