先说需求吧,需要把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
游标那应该可以直接查询一次,后面直接初始化再来次(不是专业的数据库管理,没有再深研究),感谢阅读。