TSQL:使用 With 语句更新值?

Dav*_*.ca 4 sql t-sql sql-server-2005

我有一个表,其中有一列我想更新其值。下面是 TSQL 代码的示例:

WITH Pieces(id, newdesc) AS
(
SELECT itemid, REPLACE(REPLACE(description, 'DESC_A', 'DESC_B'), 'NEW_1', 'NEW_2')
  FROM myTable
  WHERE description like '%DESC_A%DESC_B%'
)
-- SELECT * FROM Pieces
UPDATE myTable SET description = newdesc // not working, how?
Run Code Online (Sandbox Code Playgroud)

此更新不起作用。通过注释掉 SELECT,我可以看到结果就是我需要的。如何以批量方式对一组行进行此更改?不确定可以通过WITH语句实现吗?

以下是一些示例数据:

....
xxxDESC_AyyyDESC_Bwwww
aaaDESC_AxxDESC_Beee
....
Run Code Online (Sandbox Code Playgroud)

更新的将是:

....
xxxNEW_1yyyNEW_2wwww
aaaNEW_1xxNEW_2eee
....
Run Code Online (Sandbox Code Playgroud)

Jho*_*re- 5

或许

UPDATE myTable 
SET description = newdesc
FROM Pieces
WHERE Pieces.id = myTable.itemid
Run Code Online (Sandbox Code Playgroud)