我对T-SQL中的循环和递归查询不是很强(不过考虑到它更像是一种基于集合的语言)但是我还有一些问题,如果不使用递归查询而我无法弄清楚一个功能?
我有2个名为Brands and Products的表。
CREATE TABLE Brands (RowID INT, BrandName VARCHAR(50))
CREATE TABLE Products (RowID Int, ProductName VARCHAR(50), BrandName VARCHAR(50))
所以基本上,我需要根据Brands表检查Products表中的每一行,看看BrandName是否出现在Products表的ProductName中。如果是这样,请更新产品表中的BrandName字段。
感谢。
答案 0 :(得分:1)
据我所知,不需要递归或循环来执行此操作:
UPDATE Products
SET BrandName = 'updated value'
FROM Products AS p
INNER JOIN Brands AS b
ON p.ProductName LIKE '%' + b.BrandName + '%'