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)
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)
来自MSDN:
CASE表达式不能用于控制Transact-SQL语句,语句块,用户定义函数和存储过程的执行流程.有关流控制方法的列表,请参阅 控制流语言(Transact-SQL).
你真的想IF-ELSE为这种逻辑使用一种结构.