SQL Server 案例陈述

发布于 2024-12-21 22:27:22 字数 354 浏览 3 评论 0原文

我正在尝试运行此 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

I am trying to run this sql statement, but it generate error "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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云巢 2024-12-28 22:27:22

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

SQL has a CASE expression that goes where, er, expressions would go

Use the IF statement instead

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
落叶缤纷 2024-12-28 22:27:22

来自 MSDN:

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

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

From MSDN:

The CASE expression cannot be used to control the flow of execution of
Transact-SQL statements, statement blocks, user-defined functions, and
stored procedures. For a list of control-of-flow methods, see
Control-of-Flow Language (Transact-SQL).

You really want to use an IF-ELSE structure for this kind of logic.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文