带有连接的Sql Server 2008更新列[重复]

Posted

技术标签:

【中文标题】带有连接的Sql Server 2008更新列[重复]【英文标题】:Sql Server 2008 Update column with a join [duplicate] 【发布时间】:2015-04-29 09:40:44 【问题描述】:

我已经对 mysql 进行了很多更新,并在此处阅读了很多问题和答案,但由于某种原因,我的代码无法正常工作。 我不断在 Inner 附近收到 Err 42000 不正确的语法,或者我放在这里的任何东西。 我的代码

Update
    Table1
Inner Join
    Table2 on Table2.column = Table1.column
Set
    Table1.column = 'Random'
Where
    table1.ID = '32'

【问题讨论】:

【参考方案1】:

你快到了……

Update  Table1
   Set   Table1.column = 'Random'
FROM Table1 
Inner Join  Table2 on Table2.column = Table1.column
Where  table1.ID = '32'

别名版本看起来像.....

Update  T1
    Set   T1.column = 'Random'
FROM Table1 T1 
Inner Join  Table2 T2 on T2.column = T1.column
Where  T1.ID = '32'

【讨论】:

这有点奏效。为了测试我决定针对 1 个特定帐户进行测试,我不再收到错误代码,但它不会更新任何帐户。【参考方案2】:

你已经接近了。这是您的 UPDATE 语句的语法。试试这个:

UPDATE [Table1]
SET [Column] = 'Random'
FROM [Table1]
INNER JOIN [Table2] ON [Table2].[column] = [Table1].[column]
WHERE [Table1].[ID] = '32'

【讨论】:

以上是关于带有连接的Sql Server 2008更新列[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SQL Server 2008 R2 表中添加“上次更新”列?

更新表以按分组列显示总计 SQL Server 2008 R2

使用带有 oracle 的链接服务器更新 SQL Server 上的查询

带有 Visual Studio 2008 的 SQL Server Compact

基于 SQL Server 2008 中列值的内部联接

Sql Server 2008如何检查表中是不是存在列? [复制]