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)
或许
UPDATE myTable
SET description = newdesc
FROM Pieces
WHERE Pieces.id = myTable.itemid
Run Code Online (Sandbox Code Playgroud)