2011-12-18 5 views
5

Я пытаюсь запустить этот SQL заявление, но он генерирует ошибку «Неправильный синтаксис около обновления»SQL Дело сервера Заявление

Select Case @location 

     When 'MediaFiles' Then update tblMediaFiles set mdActive=1 
     When 'MediaFiles1' Then update tblMediaFiles1 set mdActive=1 
     When 'MediaFiles2' Then update tblMediaFiles2 set mdActive=2 
     Else update tblMediaFiles4 set mdActive=1 

    End 

ответ

8

SQL имеет CASE expression, который идет где, э, выражения бы

Используйте IF statement вместо

IF @location = 'MediaFiles' 
    update tblMediaFiles set mdActive=1 
ELSE IF @location = 'MediaFiles1' 
    update tblMediaFiles1 set mdActive=1 
ELSE IF @location = 'MediaFiles2' 
    update tblMediaFiles2 set mdActive=2 
ELSE 
    update tblMediaFiles4 set mdActive=1 
+0

да, он отлично поработал с if else .. thanks – Moe9977

6

Из MSDN:

Выражение CASE не может использоваться для управления потоком выполнения Операции Transact-SQL, блоки операторов, пользовательские функции и хранимые процедуры. Список методов управления потоком см. Control-of-Flow Language (Transact-SQL).

Вы действительно хотите использовать структуру IF-ELSE для такого рода логики.

Смежные вопросы