2015-06-11 2 views
0

Я хочу использовать оператор CASE что-то вроде ниже кода или любое другое предложение для реализации упомянутого сценария.Можем ли мы использовать оператор CASE вне запроса выбора или обновления. Оператор CASE по входным параметрам

Я буду использовать это в некоторых SP where @UpdateStatus Я буду получать как входной параметр.

Просьба предложить.

DECLARE @UpdateStatus nvarchar(20) 
SET @UpdateStatus='P' 
CASE 
    WHEN @UpdateStatus='P' THEN 
    BEGIN 
     BEGIN TRAN 
      Print 'A' --Update some table 
     COMMIT 
    END 
    WHEN @UpdateStatus='F' THEN 
    BEGIN 
     BEGIN TRAN 
      Print 'B' --Update some table 
     COMMIT 
    END 
END 
+0

в этом случае вы должны использовать IF Else Заявления – HaveNoDisplayName

ответ

3

Использование IF Else Statement для обработки другого значения

DECLARE @UpdateStatus nvarchar(20) 
SET @UpdateStatus='P' 
IF @UpdateStatus='P' 
    BEGIN 
     BEGIN TRAN 
      Print 'A' --Update some table 
     COMMIT 
    END 
ELSE IF @UpdateStatus='F' 
    BEGIN 
     BEGIN TRAN 
      Print 'B' --Update some table 
     COMMIT 
    END 
+0

-слишком много EndS – jac

+0

просто заменить СЛУЧАЙ с IF в том, что OP имеет, таким образом, он может легко выяснить, что нужно изменить, хотя END являются необязательными. – HaveNoDisplayName

+0

Я понимаю, что как можно ближе к OP-коду, но с дополнительным концом ssms дает ... «Неправильный синтаксис рядом с« END ».» вместо запуска запроса. – jac