sql server 中最重要的查询概念就是数据集。针对每行记录的操作,实际上可以视为对每行数据集的处理。
lz 可以使用迭代的写法,也可以通过分析处理的方法,进行函数处理。
这个要看具体需求。
------解决方案--------------------
;WITH info(InfoID,InfoTitle,ClassID)
AS
(
select 1,'中国合伙人',7 union all
select 2,'致青春',7 union all
select 3,'雷神2', 4 union all
select 4,'狼少年',4 union all
select 5,'天天向上',5 union all
select 6,'萧龙王上海演唱会',6
)
SELECT *
INTO TestTable
FROM info
declare @ids table (id int);
insert @ids( id )values (1)
WHILE EXISTS (SELECT 1 FROM TestTable WHERE InfoID>=(SELECT MAX(id) FROM @ids))
BEGIN
UPDATE TOP(1) TestTable
SET InfoTitle=InfoTitle+'_updated'
OUTPUT DELETED.InfoID INTO @ids
WHERE InfoID>=(SELECT MAX(id) FROM @ids)