使用表连接创建简单的更新查询?

时间:2017-06-23 18:28:05

标签: sql sql-server tsql

我的查询如下:

SELECT
  c.LastName
 ,c.FirstName
 ,c.ClientStatusULink
FROM Client c
  JOIN Vets_Active_Clients vac ON vac.Clientid = c.ClientID

这导致了一些数据:

LastName    FirstName   ClientStatusULink
--------    ---------   -----------------
Battle Jr   Sam         10000000
Bauder      Bill        10000000
Sabir       Mo          10000000

我需要创建一个更新查询来更新" ClientStatusULink"至" 333"。我有以下UPDATE查询,但它永远运行。这有什么问题?

UPDATE Client
SET ClientStatusULink = '333'
FROM Client c
  JOIN Vets_Active_Clients vac ON vac.Clientid = c.ClientID

谢谢

3 个答案:

答案 0 :(得分:4)

您需要使用from中定义的别名:

UPDATE c
    SET ClientStatusULink = '333'
    FROM Client c JOIN
         Vets_Active_Clients vac
         ON vac.Clientid = c.ClientID;

如果您不使用FROM中定义的别名,则Client中对UPDATE的引用与FROM条款的引用不同 - - 它本质上是一个自我交叉的连接。

答案 1 :(得分:1)

尝试为联接使用别名:

UPDATE c
SET ClientStatusULink = '333'
FROM Client c
  JOIN Vets_Active_Clients vac ON vac.Clientid = c.ClientID

答案 2 :(得分:0)

查询是正确的。 也许Client表正在使用中。您可以在活动监视器中检查它并查找阻止客户端表的查询。 导致这类问题的另一个原因是你的表格很大。