从另一个表进行SQL更新,其中

从另一个表进行SQL更新,其中,sql,sql-server,Sql,Sql Server,希望有人能帮忙 我正在尝试使用另一个SQL Server表中需要where子句的数据更新该表,以便只更新与该表中特定ID相关的行。我已经创建了以下内容(以及许多其他变体),但我总是会遇到以下错误: Msg 8624,第16级,第21状态,程序tContactPhone_INSUPD,第66行[批次开始第13行] 内部查询处理器错误:查询处理器无法生成查询计划。有关更多信息,请联系客户支持服务 这是我的更新查询。如果你能帮助我理解我做错了什么,这将有助于我撕掉我漏掉的一点点头发 UPDATE ta

希望有人能帮忙

我正在尝试使用另一个SQL Server表中需要where子句的数据更新该表,以便只更新与该表中特定ID相关的行。我已经创建了以下内容(以及许多其他变体),但我总是会遇到以下错误:

Msg 8624,第16级,第21状态,程序tContactPhone_INSUPD,第66行[批次开始第13行]
内部查询处理器错误:查询处理器无法生成查询计划。有关更多信息,请联系客户支持服务

这是我的更新查询。如果你能帮助我理解我做错了什么,这将有助于我撕掉我漏掉的一点点头发

UPDATE table1 
SET column2 = table2.column2
FROM table1 
INNER JOIN table2 ON table1.column1 = table2.column1
WHERE table1.column3 = '27';
试试这个:

UPDATE table1
   SET column2 = (SELECT column2 FROM table2 WHERE table2.column1=table1.column1)
  FROM table1 
 WHERE table1.column3 = '27';

您使用的是什么版本的SQL Server?什么是
打印@版本返回?这真的是你的疑问吗?这将是一个非常简单的SQL Server查询,用于生成与该数据库相关的Microsoft SQL Server 2014(SP3-CU-GDR)(KB4535288)-12.0.6372.1(X64)的执行。您能检查其兼容性模型吗?兼容性级别为120I,我个人认为,建议使用
连接
,RDBMS可能会更容易。将子查询放入
SELECT
有时会导致数据引擎为每一行运行一次子查询,而不是为整个数据集运行一次。(然而,我希望它不会出现在这里。)谢谢,皮尤斯-尝试过你的提问,但我得到了同样的结果