SQL Server案例声明

Moe*_*977 5 sql sql-server case switch-statement

我试图运行此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
Run Code Online (Sandbox Code Playgroud)

gbn*_*gbn 8

SQL有一个CASE 表达式,呃表达式会去

使用IF 语句代替

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
Run Code Online (Sandbox Code Playgroud)


Ron*_*del 6

来自MSDN:

CASE表达式不能用于控制Transact-SQL语句,语句块,用户定义函数和存储过程的执行流程.有关流控制方法的列表,请参阅 控制流语言(Transact-SQL).

你真的想IF-ELSE为这种逻辑使用一种结构.