郭某人的网站

关于 / 留言

MS SQL Server 中遍历数据,用临时表和循环的方式

tsql 使用临时表、临时变量和循环语句遍历指定表中的每行数据记录


记录,直接上代码:

SET NOCOUNT ON

DECLARE @t TABLE
(
    id INT
)
INSERT INTO @t(id) SELECT 列名 FROM 表名 ORDER BY 列名
DECLARE @c INT
SET @c=(SELECT COUNT(1) FROM @t)
PRINT 'counts:'+CAST(@c AS VARCHAR)
DECLARE @i INT
SET @i=(SELECT TOP 1 id FROM @t ORDER BY id)
WHILE @i IS NOT NULL
BEGIN
    PRINT 'id:'+CAST(@i AS VARCHAR)
    DELETE FROM @t WHERE id=@i
    SET @i=(SELECT TOP 1 id FROM @t ORDER BY id)
END

SET NOCOUNT OFF

 

其中 SET NOCOUNT ON 的意思为不在查询结果窗口显示影响行统计数(如 XX 行受影响),该设置项默认值为 OFF。


最后更新时间:2023/02/17 19:56

如果您喜欢此文章,或此文章给您带来了任何帮助,请考虑对我进行资金赞赏,您的支持将会成为我坚持的力量。

注意!你的赞赏转账请考虑再三后支付,此收款不作任何形式的退款。

网站维护预告

通知:

郭某人的网站将于 2025 年 6 月 9 日 12:00 开始进行站点维护,届时网站服务将会停止,整个过程预计持续 6 小时,请于此时间之后再访,希望你能理解。

郭某人