.equals()
сравнивает данные в классе (при условии, что функция реализована). ==
сравнивает местоположения указателя (расположение объекта в памяти).
==
возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals()
возвращает true, если два объекта содержат одни и те же данные equals()
Versus ==
в Java
Это может вам помочь.
Поскольку вы проверяете одну переменную на соответствие нескольким условиям, вам следует использовать что-то вроде этого. Здесь будет выполнен блок кода, где условие истинно, а другие блоки будут игнорироваться.
IF (@ParentVar1 Condition1)
Begin
IF(@Var1 Condition1)
BEGIN
/*Your Code Goes here*/
END
ELSE IF(@Var1 Condition2)
BEGIN
/*Your Code Goes here*/
END
ELSE IF(@Var1 Condition2)
BEGIN
/*Your Code Goes here*/
END
ELSE IF(@Var1 Condition2)
BEGIN
/*Your Code Goes here*/
END
ELSE --<--- Default Task if none of the above is true
BEGIN
/*Your Code Goes here*/
END
End
Если ваши операторы вставки совпадают, вы можете использовать следующий фрагмент кода:
DECLARE @Ugedagnr VARCHAR(10) = '1',
@ModulID VARCHAR(10),
@ModulID2 VARCHAR(10);
IF @Ugedagnr = '1'
BEGIN
IF @Ugedagnr = '1'
BEGIN
SET @ModulID = 'S1';
SET @ModulID2 = 'S2';
END;
IF @Ugedagnr = '2'
BEGIN
SET @ModulID = 'S5';
SET @ModulID2 = 'S6';
END;
IF @Ugedagnr = '3'
BEGIN
SET @ModulID = 'S9';
SET @ModulID2 = 'S10';
END;
IF @Ugedagnr = '4'
BEGIN
SET @ModulID = 'S13';
SET @ModulID2 = 'S14';
END;
IF @Ugedagnr = '5'
BEGIN
SET @ModulID = 'S17';
SET @ModulID2 = 'S18';
END;
SELECT @ModulID, @ModulID2
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
END;