SQL Update语句不起作用 - SQL Server

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL Update语句不起作用 - SQL Server相关的知识,希望对你有一定的参考价值。

我试图运行下面的SQL语句(SQL Server),但得到错误

“UPDATE和DELETE语句中的FROM子句不能包含子查询源或连接。”

update fp 

set fp.totalcapacity = hc.totalcapacity, 
fp.sellablecapacity = hc.sellablecapacity

from [fact].[FinalPosition] fp

join fact.[HotelCapacity] hc
on fp.hotelkey = hc.hotelkey
and fp.staydate = hc.staydate

where fp.staydate = '2016-06-18'

我似乎无法理解为什么我会收到此错误。任何的想法?

答案

我认为你想要的语法是:

update fp 
    set totalcapacity = hc.totalcapacity, 
        sellablecapacity = hc.sellablecapacity
    from fp join
         fact.[HotelCapacity] hc
         on fp.hotelkey = hc.hotelkey and fp.staydate = hc.staydate
    where fp.staydate = '2016-06-18';

如果你想让fp引用一个实际的表,请在from子句中包含它,并使fp成为表的别名。

以上是关于SQL Update语句不起作用 - SQL Server的主要内容,如果未能解决你的问题,请参考以下文章

Python SQL executemany 语句不起作用

SQL Null 语句不起作用 MS Access

ORACLE SQL UPDATE 与 INNER JOIN 不起作用

无效的SQL语句;预期的DELETE,INSERT,PROCEDURE,SELECT或UPDATE?

为啥我的 UPDATE sql 查询不起作用?不会更新表

更新语句不起作用