我希望根据另一个表中的选择向nvarchar字段添加文本。
当我尝试这个时,我收到以下错误: 多部分标识符" employees.desc"无法绑定
UPDATE
employees
SET
employees.desc = employees.desc + ', ' + c.title
FROM
employees AS e
INNER JOIN company AS c
ON e.dept=c.orgcode
WHERE e.dept IS NOT NULL
如果我只是使用
设置新标题而不附加现有标题employees.desc = c.title
它运作正常。我在这里做错了什么?
答案 0 :(得分:2)
您需要使用FROM / JOIN
中的别名UPDATE
employees
SET
employees.desc = e.desc + ', ' + c.title
FROM
employees AS e
INNER JOIN company AS c
ON e.dept=c.orgcode
WHERE e.deptIS NOT NULL
答案 1 :(得分:1)
你的查询不应该是这个吗?
UPDATE
employees
SET
employees.desc = e.desc + ', ' + c.title
FROM
employees AS e
INNER JOIN company AS c
ON e.dept=c.orgcode
WHERE e.deptIS NOT NULL
原始查询中没有名为o的表。
答案 2 :(得分:0)
您可以像这样重写:
UPDATE
e
SET
desc = e.desc + ', ' + c.title
FROM
employees AS e
INNER JOIN company AS c
ON e.dept=c.orgcode
WHERE e.dept IS NOT NULL
您无需在SET
子句中明确指定要引用的表。即您可以写SET desc = ...
而不是SET e.desc = ...
。它已在您的UPDATE
子句中指定了要更新的表。