复制以下代码 到 RMS_ARMY_ENDWAR 储存过程 里
如果在查询分析器里运行 请先把 原来的 RMS_ARMY_ENDWAR 重命名或删除
不然会提示 已经存在RMS_ARMY_ENDWAR
CREATE PROCEDURE RMS_ARMY_ENDWAR
@ArmyID1 int,
@ArmyID2 int
AS
set nocount on
begin transaction RMS_ARMY_ENDWAR
update tblArmyWarList1 set WarState=4 where(ArmyID=@ArmyID1 or ArmyID=@ArmyID2)
if @@ROWCOUNT!=0
begin
EXEC RMS_ARMY_WRITEWARLOG @ArmyID1=@ArmyID1,@ArmyID2=@ArmyID2,@LogKind='WarEnd'
DECLARE @AllianceID1 int
DECLARE @AllianceID2 int
SET @AllianceID1=0
SET @AllianceID2=0
SELECT @AllianceID1=AllianceID FROM tblArmyAllianceList1 WHERE ArmyID=@ArmyID1
IF @AllianceID1=0
BEGIN
DELETE tblHiredSoldierList1 WHERE ArmyID=@ArmyID1
END
ELSE
BEGIN
DELETE tblHiredSoldierList1 WHERE ArmyID in(SELECT ArmyID FROM tblArmyAllianceList1 WHEREAllianceID=@AllianceID1)
END
SELECT @AllianceID1
SELECT @AllianceID2=AllianceID FROM tblArmyAllianceList1 WHERE ArmyID=@ArmyID2
IF @AllianceID2=0
BEGIN
DELETE tblHiredSoldierList1 WHERE ArmyID=@ArmyID2
END
ELSE
BEGIN
DELETE tblHiredSoldierList1 WHERE ArmyID in(SELECT ArmyID FROM tblArmyAllianceList1 WHEREAllianceID=@AllianceID2)
END
SELECT @AllianceID2
end
DELETE FROM tblArmyWarListLog1 where(ArmyID1=@ArmyID1 or ArmyID1=@ArmyID2) AND (ArmyID2=@ArmyID1 orArmyID2=@ArmyID2)
commit transaction RMS_ARMY_ENDWAR
GO