2011-12-18 12 views
5

Estoy tratando de ejecutar esta instrucción SQL, pero generará error "Sintaxis incorrecta cerca de actualización"SQL Declaración servidor caso

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 

Respuesta

8

SQL tiene un CASE expression que va a donde, er, expresiones iría

usar la IF statement lugar

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

sí funcionó muy bien con el otro si .. gracias – Moe9977

6

De MSDN:

La expresión CASE no se puede utilizar para controlar el flujo de ejecución de instrucciones Transact-SQL, bloques de instrucciones, funciones definidas por el usuario, y procedimientos almacenados. Para obtener una lista de los métodos de control de flujo, ver Control-of-Flow Language (Transact-SQL).

Realmente desea utilizar una estructura IF-ELSE para este tipo de lógica.

Cuestiones relacionadas