Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 使用同一表的另一列更新表的一列_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 使用同一表的另一列更新表的一列

Sql server 使用同一表的另一列更新表的一列,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有两张表:车辆表和车辆组表 车辆表-->包含列-->车辆ID、组名、组ID 车辆组表-->包含列-->组ID、组名称 我想通过将vehicle\u group\u表连接到其公共groupname列来更新vehicle\u表的groupid列 UPDATE vehicle_table SET vehicle_table.groupid = vehicle_group_table.groupid WHERE vehicle_table.groupname = vehicle_

我有两张表:车辆表和车辆组表

  • 车辆表-->包含列-->车辆ID、组名、组ID
  • 车辆组表-->包含列-->组ID、组名称
我想通过将vehicle\u group\u表连接到其公共groupname列来更新vehicle\u表的groupid列

UPDATE vehicle_table 
    SET vehicle_table.groupid = vehicle_group_table.groupid
    WHERE vehicle_table.groupname = vehicle_group_table.groupname

但这似乎不起作用。

您可以在场景中应用以下语法:

更新目标

从SourceTable

设置TargetTableField=SourceTable.SourceTableField


其中TargetTable.Field=TargetTable.Field

您可以在场景中应用以下语法:

更新目标

从SourceTable

设置TargetTableField=SourceTable.SourceTableField

其中TargetTable.Field=TargetTable.Field

试试这个:-

Update vt
Set vt.groupiid = vgt.groupid
from vehicle_table vt
inner join vehicle_group_table vgt
on vt.groupname = vgt.groupname
试试这个:-

Update vt
Set vt.groupiid = vgt.groupid
from vehicle_table vt
inner join vehicle_group_table vgt
on vt.groupname = vgt.groupname
您需要通过联接将这两个表关联起来。还有其他的子查询方法等

注意:不要像其他答案中建议的那样在SET子句的destination/target列中使用别名。它在SQL Server中失败,而不是在SQL Server 2012中,因此我认为行为发生了变化

对于更复杂的设置:

您需要通过联接将这两个表关联起来。还有其他的子查询方法等

注意:不要像其他答案中建议的那样在SET子句的destination/target列中使用别名。它在SQL Server中失败,而不是在SQL Server 2012中,因此我认为行为发生了变化

要了解更复杂的设置:

试试

    UPDATE A SET A.groupid = B.groupid 
    FROM vehicle_table A INNER JOIN vehicle_group_table B ON 
    A.groupname = B.groupname
试试看

    UPDATE A SET A.groupid = B.groupid 
    FROM vehicle_table A INNER JOIN vehicle_group_table B ON 
    A.groupname = B.groupname
试试这个:

UPDATE a set a.groupid =b.groupid

from vehicle_table a
inner join 
vehicle_group_table b

on a.groupname = b.groupname
试试这个:

UPDATE a set a.groupid =b.groupid

from vehicle_table a
inner join 
vehicle_group_table b

on a.groupname = b.groupname

你能详细说明“但这似乎不起作用”吗?什么错误信息?您能否详细说明“但这似乎不起作用”?什么错误消息?这不是SQL Server语法这不是SQL Server语法