数据之美SQL ServerSQL server

SqlServer使用For循环结合游标更新数据

2018-12-27  本文已影响0人  天天向上卡索

SqlServer使用For循环更新数据

Intro

有时候,可能会有一些需求更新一部分数据,需要遍历,但是又不想专门写一个小工具,还是觉得写个 sql 语句比较方便。

Let's do it

话不多说,亮代码,Show me the code:

DECLARE @projectId nvarchar(36) 
DECLARE My_Cursor CURSOR --定义游标
FOR (SELECT OriginalProjectId FROM dbo.CommunityProjects
WHERE CommunityId = -1) --查出需要的集合放到游标中
OPEN My_Cursor; --打开游标
FETCH NEXT FROM My_Cursor INTO @projectId;
WHILE @@FETCH_STATUS = 0
    BEGIN
        UPDATE dbo.CommunityProjects
        SET CommunityId = CAST(ISNULL((
            SELECT ZhongyiCommunityId FROM dbo.CommunityMappings
            WHERE FangdiCommunityId = @projectId
        ),'-1') AS INT)
        WHERE OriginalProjectId = @projectId

        FETCH NEXT FROM My_Cursor INTO @projectId;
    END
CLOSE My_Cursor; --关闭游标
DEALLOCATE My_Cursor; --释放游标

Reference

上一篇 下一篇

猜你喜欢

热点阅读