MSSQL:从Select中追加字符串

时间:2017-08-24 11:00:46

标签: tsql sql-server-2012

我希望根据另一个表中的选择向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

它运作正常。我在这里做错了什么?

3 个答案:

答案 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子句中指定了要更新的表。