正在尝试向 SQL Server 2008 中的列添加前缀

Attempting to add a prefix to a column in SQL Server 2008

我正在尝试使用 'from' x table 添加带有条件的前缀,然后使用 where 指定 id

例如:

UPDATE tablenameX 
SET columnnameX = 'prefix' + columnnameX 
FROM tablenameY 
WHERE columnnameY = 'id'

我真的不明白它在 columnnameX 之后拒绝读取的问题在哪里,我的意思是它可以毫无问题地执行,但是它忽略了我正在尝试使用的参数并且它适用于每个列条目。

我已经使用了很多这种简单的 SQL 命令,没有任何问题,我不知道如何修复它,也不知道如何构建本质上更复杂的东西 -我是新手,请多多包涵。

我不确定连接条件是什么,因为您没有告诉我们 X 和 Y 是如何相关的,但是相关连接看起来像这样:

UPDATE x
  SET x.columnnameX = 'prefix' + x.columnnameX
  FROM dbo.tablenameX AS x
  INNER JOIN dbo.tablenameY AS y
  ON y.< ??? something ??? > = x.< ??? something ???>
  WHERE y.columnnameY = 'id';

或者像这样:

UPDATE x
  SET x.columnnameX = 'prefix' + x.columnnameX   
  FROM dbo.tablenameX AS x
  WHERE EXISTS
  (
    SELECT 1 FROM dbo.tablenameY AS y
      WHERE columnnameY = 'id'
      AND y.< ??? something ??? > = x.< ??? something ???>
  );