t sql «выберите регистр» против «если… еще» и объяснение «начала»

У меня мало опыта с т sql, и я должен написать сохраненный.

Это мое хранится:

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

И это мои вопросы:

1 - Есть ли макроскопические ошибки?

2 - Кто-то предлагает использовать "ВЫБЕРИТЕ ДЕЛО " кто-то еще, чтобы использоватьЕСЛИ ЕЩЕ", какие'Разница? И какой вариант лучше для меня хранится?

3 - яя не уверен насчет использованияНАЧАТЬ ... КОНЕЦ " заявление, в частности в сочетании с "ЕСЛИ ЕЩЕ" заявление. Что это значит? Нужно ли ставитьНАЧАТЬ ... КОНЕЦ " внутри "ЕСЛИ ЕЩЕ" заявление? Также для выполнения одной инструкции?

Ответы на вопрос(3)

Ваш ответ на вопрос