【问题标题】:SQL Server Case StatementSQL Server 案例陈述
【发布时间】:2011-12-18 19:17:17
【问题描述】:

我正在尝试运行此 sql 语句,但它会生成错误“Incorrect syntax near update”

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

【问题讨论】:

    标签: sql sql-server case switch-statement


    【解决方案1】:

    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
    

    【讨论】:

      【解决方案2】:

      来自 MSDN:

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

      您确实想为这种逻辑使用IF-ELSE 结构。

      【讨论】:

        猜你喜欢
        • 2013-10-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-10
        • 2010-10-30
        • 2016-05-13
        • 2016-02-21
        • 1970-01-01
        相关资源
        最近更新 更多