TSQL(SQL Server)使用语句双游标循环多表操作

本文介绍了一种使用SQL游标来同步A表中的X1列数据至多个目标表的方法,其中目标表由C表中的记录动态指定。通过声明变量和游标,实现了从源表读取数据并更新至一系列目标表的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先说需求吧,需要把A表中数据的X1列同步到B1111、B2222、B3333….表中,条件为A表分别与其它表的X2列相等,但B表的数字为不确定,表编号存放在C表。

大概流程如下:
x024

解决方案SQL语句

declare @EntInfo varchar(50),@ModuleInfo varchar(100),@ValInfo varchar(100) 
declare @tempEntInfo varchar(100),@xSQL varchar(200)

declare Ent_Cu cursor for
select TABLEID from C
open Ent_Cu 
fetch next from Ent_Cu into @EntInfo 

while(@@fetch_status=0)
begin
set @tempEntInfo = 'B'+@EntInfo

        --开始查询列名并存储
        declare Moudle_Cu cursor for 
        select X1,X2 from A
        open Moudle_Cu 
        fetch next from Moudle_Cu into @ValInfo,@ModuleInfo
        while(@@fetch_status=0)
        begin
        set @xSQL ='update '+REPLACE(@tempEntInfo,' ','')+ ' set ModuleMobileIcon='''+@ValInfo+ ''' where ModuleTitle='''+@ModuleInfo+''''
        print (@xSQL) 
        exec(@xSQL)
        fetch next from Moudle_Cu into @ValInfo,@ModuleInfo
        end
        close Moudle_Cu
        deallocate Moudle_Cu 

fetch next from Ent_Cu into @EntInfo 
end
close Ent_Cu
deallocate Ent_Cu 

游标那应该可以直接查询一次,后面直接初始化再来次(不是专业的数据库管理,没有再深研究),感谢阅读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值