Syntaxe incorrecte près du mot clé 'ELSE'
J'ai eu un problème avec else
fonction.
Voici mon code
IF (Not Exists(SELECT * FROM Log_DB.dbo._LogJobSYS WHERE KillerJobID=@JKillerID AND DeadJobID=@CharID))
BEGIN
INSERT Log_DB.dbo._LogJobSYS(KillerJobID,DeadJobID,DeathTime)
VALUES (@JKillerID, @CharID, GETDATE())
BEGIN
BEGIN
IF (@JKillerJobType = 1) /*TRADER*/
BEGIN
IF (Not Exists(SELECT * FROM SRO_VT_SHARD_INIT.dbo._CharJobTradersys Where CharID=@JKillerID))
BEGIN
INSERT SRO_VT_SHARD_INIT.dbo._CharJobTradersys(CharID,TraderPoints,Kills,Deaths,LastKill,Date)
VALUES (@JKillerID, 1, 1, 0, @JDeadNick, GETDATE())
END
ELSE Begin
UPDATE SRO_VT_SHARD_INIT.dbo._CharJobTradersys SET TraderPoints = TraderPoints +1, Kills = Kills +1, LastKill = @JDeadNick, Date = GETDATE() WHERE CharID = @JKillerID
END
END
END
ELSE
IF (@JKillerJobType = 2) /*THIEF*/
BEGIN
IF (Not Exists(SELECT * FROM SRO_VT_SHARD_INIT.dbo._CharJobThiefsys Where CharID=@JKillerID))
BEGIN
INSERT SRO_VT_SHARD_INIT.dbo._CharJobThiefsys(CharID,ThiefPoints,Kills,Deaths,LastKill,Date)
VALUES (@JKillerID, 1, 1, 0, @JDeadNick, GETDATE())
END
ELSE Begin
UPDATE SRO_VT_SHARD_INIT.dbo._CharJobThiefsys SET ThiefPoints = ThiefPoints +1, Kills = Kills +1, LastKill = @JDeadNick, Date = GETDATE() WHERE CharID = @JKillerID
END
END
ELSE
IF (@JKillerJobType = 3) /*HUNTER*/
BEGIN
IF (Not Exists(SELECT * FROM SRO_VT_SHARD_INIT.dbo._CharJobHuntersys Where CharID=@JKillerID))
BEGIN
INSERT SRO_VT_SHARD_INIT.dbo._CharJobHuntersys(CharID,HunterPoints,Kills,Deaths,LastKill,Date)
VALUES (@JKillerID, 1, 1, 0, @JDeadNick, GETDATE())
END
ELSE Begin
UPDATE SRO_VT_SHARD_INIT.dbo._CharJobHuntersys SET HunterPoints = HunterPoints +1, Kills = Kills +1, LastKill = @JDeadNick, Date = GETDATE() WHERE CharID = @JKillerID
END
END
BEGIN
IF (@JDeadJobType = 1) /*TRADER*/
BEGIN
IF (NOT EXISTS(SELECT * FROM SRO_VT_SHARD_INIT.dbo._CharJobTradersys WHERE CharID=@CharID))
BEGIN
INSERT SRO_VT_SHARD_INIT.dbo._CharJobTradersys(CharID,TraderPoints,Kills,Deaths,LastKill,Date)
VALUES (@CharID, 0, 0, 1, 'NONE', GETDATE())
END
ELSE BEGIN
UPDATE SRO_VT_SHARD_INIT.dbo._CharJobTradersys SET TraderPoints = TraderPoints -0.5, Deaths = Deaths +1, Date = GETDATE() WHERE CharID = @CharID
END
END
END
ELSE
IF (@JDeadJobType = 2) /*THIEF*/
BEGIN
IF (NOT EXISTS(SELECT * FROM SRO_VT_SHARD_INIT.dbo._CharJobThiefsys WHERE CharID=@CharID))
BEGIN
INSERT SRO_VT_SHARD_INIT.dbo._CharJobThiefsys(CharID,ThiefPoints,Kills,Deaths,LastKill,Date)
VALUES (@CharID, 0, 0, 1, 'NONE', GETDATE())
END
ELSE BEGIN
UPDATE SRO_VT_SHARD_INIT.dbo._CharJobThiefsys SET ThiefPoints = ThiefPoints -0.5, Deaths = Deaths +1, Date = GETDATE() WHERE CharID = @CharID
END
END
ELSE
IF (@JDeadJobType = 3) /*HUNTER*/
BEGIN
IF (NOT EXISTS(SELECT * FROM SRO_VT_SHARD_INIT.dbo._CharJobHuntersys WHERE CharID=@CharID))
BEGIN
INSERT SRO_VT_SHARD_INIT.dbo._CharJobHuntersys(CharID,HunterPoints,Kills,Deaths,LastKill,Date)
VALUES (@CharID, 0, 0, 1, 'NONE', GETDATE())
END
ELSE BEGIN
UPDATE SRO_VT_SHARD_INIT.dbo._CharJobHuntersys SET HunterPoints = HunterPoints -0.5, Deaths = Deaths +1, Date = GETDATE() WHERE CharID = @CharID
END
END
END
END
J'obtiens ces erreurs:
Msg 156, Niveau 15, État 1, Procédure _AddLogChar, Ligne 155
Syntaxe incorrecte près du mot clé 'ELSE'.Msg 156, Niveau 15, État 1, Procédure _AddLogChar, Ligne 194
Syntaxe incorrecte près du mot clé 'ELSE'.
Note de côté : c'est pour la première Else
commande, mais la deuxième ne donne pas d'erreur (ceux qui sont avant SI (@JKillerJobType = 2) ET SI (@JDeadJobType = 2) !
merci !
il semble que vous avez deux "ELSE"s avant SI (@JDeadJobType = 2) et SI (@JDeadJobType = 3).
OriginalL'auteur Muhab | 2014-05-05
Vous devez vous connecter pour publier un commentaire.
J'ai commenté certains des suspects Extrémités ont un coup d'oeil maintenant, Avec une telle requête complexe Indentation vraiment rendre les choses beaucoup plus facile.
Wow vraiment pas attendre d'elle 🙂 bien content, il a travaillé tous les je ne a été correctement en retrait ce qui rend plus facile à lire que le code complexe.
OriginalL'auteur M.Ali
Il semble que vous peut-être manquant un peu de " FIN de la. Sauf si tu veux le nid de plus profond. Pour le COMMERÇANT, vous fermer tout le chemin, mais pour le VOLEUR sur le bas, vous ne le font pas.
merci il fonctionne tout semble me manquer qch qui est responsable de déclarer de @JKillerJobType de sorte qu'il ne fonctionne pas :s
OriginalL'auteur mgoodric
Mettre des crochets autour _AddLogChar. [_AddLogChar]
Désolé. Pas tout à fait clair. Mon prochain pense @mgoodric. Avec tout ça, le plus de chances manquant ou trop FIN ou COMMENCE. Est-il une raison pourquoi vous ne pouvez pas tout simplement à l'aide de quelques cas relevés. Il y a beaucoup de chevauchements autour de CharJobThiefsys et CharJobHuntSys. Cas quand CharJobThier est nulle et CharJobHunt n'est pas null, etc.
OriginalL'auteur Anthony Horne