J'ai du mal à comprendre pourquoi le SQL ci-dessous ne fonctionnera pas. J'ai mis un commentaire (---------- Fine jusqu'à ici), qui est où SQL Server acceptera le code quand j'analyse/enregistre le processus de magasin.Instruction SQL IF/ELSE
Le bit ci-dessous, il ne prendra pas. Toujours nouveau sur SQL, toute aide serait géniale.
L'erreur que je reçois est, Syntaxe incorrecte près du mot clé 'ELSE'. Le "SINON" étant celui sous le commentaire que j'ai mentionné ci-dessus.
Ce que je ne comprends pas non plus, c'est que si je change le IF et le BEGIN round, SQL l'accepte (ci-dessous)? Je pensais que ELSE IF n'était pas possible.
----------Fine up to Here
ELSE
IF (@GrabTypeID = '')
BEGIN
****************************************
Code below
**************************************
IF (@GrabtypeID NOT IN (SELECT GRABTYPEID FROM Mytable) AND @GrabtypeID != '') OR
(@Variable1 NOT IN (SELECT ID FROM Mytable) AND @Variable1 !='')
BEGIN
SELECT @ErrorMessage ='The GrabTypeID or the ID is an invalid value'
RAISERROR (@ErrorMessage, 16, 1)
PRINT 'Invalid Parameters passed Through'
RETURN
END
ELSE
BEGIN
IF (@GrabtypeID ! ='')
TRUNCATE TABLE Datatable1
TRUNCATE TABLE Datatable2
INSERT Datatable1
SELECT * FROM Referencetable1
INSERT Datatable2
SELECT * FROM REFERENCETABLE2
END
----------Fine up to Here
ELSE
BEGIN
IF (@GrabTypeID = '')
TRUNCATE TABLE Datatable1
TRUNCATE TABLE Datatable2
INSERT Datatable1
SELECT * FROM REFERENCETABLE1 WHERE CATEGORY = 4
INSERT Datatable2
SELECT * FROM REFERENCETABLE2 WHERE CATEGORY = 4
END
GO
Il vous manque un marqueur BEGIN après le mot clé IF. – Stavr00