您的位置:首页 > 数据库

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

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

大概流程如下:



解决方案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


游标那应该可以直接查询一次,后面直接初始化再来次(不是专业的数据库管理,没有再深研究),感谢阅读。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: