0

我想用新的friendlyurl 值更新表[listings] 中的所有行。我认为我也可以这样做,而不是遍历所有记录:

;WITH vars1 AS (
SELECT title FROM listings where listingtype=2 order by createdate desc)
UPDATE listings set friendlyurl=REPLACE(LOWER(vars1.title),' ','-') 

但我在最后一行得到错误:

无法绑定多部分标识符 vars1.title。

如何更正上述声明以按我的意愿工作?

4

1 回答 1

2

如果您想使用 CTE 进行更新,那么您可以使用:

;with vars1 as
(
  select title, friendlyUrl
  from listings
  where listingtype=2 
) 
update vars1 
set friendlyurl = REPLACE(LOWER(vars1.title),' ','-');

但是你可以在没有 CTE 的情况下做到这一点:

update listings
set friendlyurl = REPLACE(LOWER(title),' ','-')
where listingtype=2;

使用两个查询查看演示

于 2013-05-29T21:16:14.400 回答