Добавить оператор удаления в оператор if - PullRequest
3 голосов
/ 03 мая 2019

Я пытаюсь добавить оператор удаления в существующий оператор IF.

Я пытался добавить инструкцию в начале и в конце, но она не работает.

Это существующий код, который я создал для оператора update и insert.

IF EXISTS (SELECT * FROM [int_SocialAccess].[dbo].[Authorisers] where ID = {ID})
update [int_SocialAccess].[dbo].[Authorisers] set 
        Name = {Name},
        Email = {Email},
        Responsibility = {Responsibility},
        IsHeadOfService = {IsHeadOfService},
        DeleteRec = {DeleteRec}
    where ID = {ID}
ELSE
    insert into [int_SocialAccess].[dbo].[Authorisers] 
    values( {Name},
        {Email},
        {Responsibility},
        {IsHeadOfService},
        'no')

Я пытаюсь добавить в свой оператор удаления ниже, прямо перед оператором обновления, если поле «DeleteRec» - «да», я хочу удалить запись, в противном случае обновите ее.

IF {DeleteRec} = 'yes'
    DELETE FROM [int_SocialAccess].[dbo].[Authorisers]
    where ID = {ID}
ELSE

Любое указание было бы замечательно.

1 Ответ

4 голосов
/ 03 мая 2019

Если вам нужно более одного stmt в блоке if-else, вам нужно обернуть с помощью BEGIN END -

IF EXISTS (SELECT * FROM [int_SocialAccess].[dbo].[Authorisers] where ID = {ID})
BEGIN
    IF {DeleteRec} = 'yes'
        DELETE FROM [int_SocialAccess].[dbo].[Authorisers] where ID = {ID}
    ELSE
         Update
END
ELSE
    insert into [int_SocialAccess].[dbo].[Authorisers] 
    values( {Name},
        {Email},
        {Responsibility},
        {IsHeadOfService},
        'no')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...