Я создаю хранимую процедуру, которая должна проверять несколько условий и в зависимости от результата должна выполнять конкретные запросы.У меня проблемы, когда дело доходит до вложенных IF-операторов, и я действительно не могу понять, что не так с синтаксисом.
Вот фрагмент моего кода (остальное в значительной степени то же самое, нос другими значениями)
IF @periodeKD = 'Formiddag'
IF @Ugedagnr = '1'
BEGIN TRANSACTION
@ModulID = 'S1'
@ModulID2 = 'S2'
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID2, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
COMMIT TRANSACTION
IF @Ugedagnr = '2'
BEGIN TRANSACTION
@ModulID = 'S5'
@ModulID2 = 'S6'
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID2, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
COMMIT TRANSACTION
IF @Ugedagnr = '3'
BEGIN TRANSACTION
@ModulID = 'S9'
@ModulID2 = 'S10'
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID2, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
COMMIT TRANSACTION
IF @Ugedagnr = '4'
BEGIN TRANSACTION
@ModulID = 'S13'
@ModulID2 = 'S14'
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID2, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
COMMIT TRANSACTION
IF @Ugedagnr = '5'
BEGIN TRANSACTION
@ModulID = 'S17'
@ModulID2 = 'S18'
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
INSERT INTO Undervisning (ModulID, SkemaDato, LokaleID, HoldID, FagID, LaererID, Aar, Uge)
VALUES (@ModulID2, GETDATE(), @lokaleID, @holdID, @fagID, @laererID, @CurrentYear, @WeekNumber)
COMMIT TRANSACTION
Он продолжает жаловаться на второй оператор IF после первого (IF @Ugedagnr = '1').
Как записываются вложенные операторы IF?