t sql "Groß- und Kleinschreibung auswählen" vs "if ... else" und Erklärung zu "begin"

Ich habe wenig erfahrungen mit tsql und muss eine gespeicherte schreiben.

Dies ist meine gespeicherte:

USE myDatabase
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[myStored]
(
@myPar1 INT,
@myPar2 SMALLDATETIME
)

AS

BEGIN
  SET NOCOUNT ON

  IF EXISTS (
            SELECT 
            1 

            FROM 
            myTable1 

            WHERE 
            myPar1 = @myPar1
            AND myPar2 = @myPar2
            )

    BEGIN
      DELETE FROM  
      myTable1  

      WHERE 
      myPar1 = @myPar1
      AND myPar2 = @myPar2
    END

  ELSE 

    IF EXISTS (
              SELECT 
              1 

              FROM 
              myTable2 

              WHERE 
              myPar2 = @myPar2
              )

      BEGIN
        INSERT INTO  
        myTable1
        (myField1, myField2, myField3, myField4)

        VALUES
        (@myPar1, @myPar2, '', 1)
      END    

    ELSE

      IF EXISTS (
                SELECT 
                1 

                FROM 
                myTable3 

                WHERE 
                myPar2 = @myPar2
                )

        BEGIN
          INSERT INTO  
          myTable1
          (myField1, myField2, myField3, myField4)

          VALUES
          (@myPar1, @myPar2, '', 1)
        END
END

Und das sind meine Fragen:

1 - Gibt es makroskopische Fehler?

2 - Jemand schlägt vor, "SELECT CASE" zu verwenden, jemand anderes, um "IF ... ELSE" zu verwenden. Was ist der Unterschied? Und was ist die beste Option für meine gespeicherten?

3 - Ich bin mir nicht sicher, ob die Anweisung "BEGIN ... END" verwendet wird, insbesondere in Kombination mit der Anweisung "IF ... ELSE". Was heißt das? Muss "BEGIN ... END" in die Anweisung "IF ... ELSE" eingefügt werden? Auch zur Ausführung eines einzelnen Befehls?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage