2011-12-18 6 views
5

próbuję uruchomić to SQL, ale generuje błąd "Niepoprawna składnia w pobliżu aktualizacji"SQL komunikat Server Case

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 

Odpowiedz

8

SQL ma CASE expression że idzie gdzie, er, wyrażenia pójdzie

użyj IF statement zamiast

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

tak, zadziałało świetnie, jeśli jeszcze .. dzięki – Moe9977

6

Od MSDN:

Wyrażenia CASE nie można używać do sterowania przepływem instrukcji Transact-SQL, bloków instrukcji, funkcji zdefiniowanych przez użytkownika i procedur składowanych Transact-SQL. Aby zapoznać się z listą metod sterowania przepływem, zobacz Control-of-Flow Language (Transact-SQL).

Naprawdę chcesz użyć struktury IF-ELSE dla tego rodzaju logiki.