具有多个内部联接的SQL Update

时间:2012-09-18 16:18:31

标签: sql sql-server sql-update inner-join

使用MSSQL

寻找确认我的代码是正确的。问,因为我理解如果语句不正确,可能会弄乱SQL数据库。

 query = ('UPDATE ProjectBridge.JobNumber, ProjectOffice.ProjectName,Client.ClientName'
         'SET ProjectBridge.JobNumber = '1205665', 
          ProjectOffice.ProjectName = 'The new name',
          Client.ClientName = 'New Client',
         'FROM ProjectBridge '
         'INNER JOIN ProjectOffice '
         'ON ProjectBridge.PJBId=ProjectOffice.PJBId '
         'INNER JOIN Client '
         'ON ProjectOffice.ClientId=Client.ClientId '
         'WHERE ProjectBridge.JobNumber LIKE '1205666%')

我也见过:

'UPDATE ProjectBridge.JobNumber as Val1'
'SET Val1 = 1205665' 

这是否正确使用“as”语句?

2 个答案:

答案 0 :(得分:1)

首先,您无法一次更新多个表。即使您被允许连接表,每个UPDATE命令也只应更新一个表。其次,update语句在语法上有错误。 SET语句中应始终包含单个update子句。如果要更新多个列,请用逗号分隔。

答案 1 :(得分:0)

如果你想测试更新语句而不实际更改任何内容,但看看它是否编译以及它会产生多少行,请尝试以下方法:

query = ('UPDATE ProjectBridge.JobNumber, ProjectOffice.ProjectName,Client.ClientName'
         'SET ProjectBridge.JobNumber = ProjectBridge.JobNumber, 
         'SET ProjectOffice.ProjectName = ProjectOffice.ProjectName,
         'SET Client.ClientName = Client.ClientName,