当前位置:首页 >> 食疗养生

偷懒也能更新数据表覆盖

2021-09-06 04:02 来源:密山养生网

问:请专家指教!问题是这样的:我这里有1000个数据表,每个表的结构一模一样(每个表里都有“,tj,yj,ej,sj,sij,wj,lj,zs,zjl”10个字段),只是表名不一样。还有一个“数据更新表jj(table_index,,tj,yj,ej,sj,sij,wj,lj,zs,zjl)”,除了table_index字段外,同样有“,tj,yj,ej,sj,sij,wj,lj,zs,zjl”10个字段,有1000行,该表的用途是用来更新(insert)前述1000个数据表的,即每一行数据更新一个表。但是如果手动更新很麻烦,而且“数据更新表”的内容经常变化,也就是说要经常更新前述的1000个数据表,我就想能否编写个程序,让数据自动进行更新,因此我先将这1000个表的表名放在“表table_index(序号,数据表名)”中,然后编写了如下函数(当中的返回值实际上没有用)。但是语法检查“ @table_name”处有错,不知如何进行更正,或者说这种方法是否可行?如果不可行,请专家能否给我指点一下有什么“偷懒”点的方法进行上述1000个数据表的更新?本人将万分感谢! use fff

go

create function data_insert1()

RETURNS int

Begin

Declare @ int(4)

declare @table_index int(4),@tj int(4),@yj int(4),@ej int(4),@sj int(4),@sij bigint(8)

declare @wj bigint(8),@lj bigint(8),@zs bigint(8),@zjl char(15),@table_name char(15)

declare youbiao cursor for select * from jj for read only

open youbiao

fetch next from youbiao into @table_index,@,@tj,@yj,@ej,@sj,@sij,@wj,@lj,@zs,@zjl

while @@fetch_status=0 /*loop rows in the cursor*/

begin

declare youbiao_temp cursor for

select 数据表名 from table_index where 序号=@table_index

open youbiao_temp

fetch next from youbiao_temp into @table_name

insert @table_name(,tj,yj,ej,sj,sij,wj,lj,zs,zjl)

values(@qihao,@tj,@yj,@ej,@sj,@sij,@wj,@lj,@zs,@zjl)

deallocate youbiao_temp

end

deallocate youbiao

RETURN @table_index

end

go

答:肯定的是,这种方法可行。所犯的错误是没有理解 字段名,表名,数据库名之类作为变量时,必须用动态SQL,使用动态sql语句就能解决该问题.

use fff

go

create function data_insert1()

RETURNS int

Begin

Declare @ int(4)

此外 declare @table_index int(4),@tj int(4),@yj int(4),@ej int(4),@sj int(4),@sij bigint(8)

declare @wj bigint(8),@lj bigint(8),@zs bigint(8),@zjl char(15),@table_name char(15)

declare youbiao cursor for select 数据库表名,,tj,yj,ej,sj,sij,wj,lj,zs,zjl from jj a,table_index b where ble_index=b.序号 for read only

open youbiao

fetch next from youbiao into @table_name,@,@tj,@yj,@ej,@sj,@sij,@wj,@lj,@zs,@zjl

while @@fetch_status=0 /*loop rows in the cursor*/

begin

declare @s Nvarchar(1000)

set @s = \'insert \' + @table_name + \'(,tj,yj,ej,sj,sij,wj,lj,zs,zjl)\' values\'+\'(\'+@+\',\'+@tj+\',\'+@yj+\',\'+@ej+\',\'+@sj+\',\'+@sij+\',\'+@wj+\',\'+@lj+\',\'+@zs+\',\'+@zjl+\')\'

Exec(@s)

exec sp_executesql @s

open youbiao

fetch next from youbiao into @table_name,@,@tj,@yj,@ej,@sj,@sij,@wj,@lj,@zs,@zjl

end

deallocate youbiao

RETURN 1

end

go

避孕药
昆明包皮包茎治疗哪家好
石家庄好白癜风医院
相关阅读
《争》姜还是老的辣,她故意出错,周锐和骆伽双双中计

求职内心剧《碰》根据付遥同名小说第一部,张黎第一部自,陈坤、辛芷蕾领衔主演,王学圻、张子健、刘威葳特邀客串演出,吕中会、王庆祥、郭广平友情客串演出。 《碰》描绘了一幅当代都心青年的求职点滴...

她是一代女神,22岁嫁入豪门却惨淡收场,如今46岁已被人消逝

明确指出上世纪八九十上世纪的澳门电视界,除了世代天王,最深入人心的就让是澳门的一众淑女,无论是邱淑贞还是李嘉欣都给许多人留下了不可磨灭的期待。然而,除了这都曾人尽皆知的澳门老牌淑女外,还有...

原来,爱情从来很难离开过

滴不尽相思血泪抛茉莉,开不完春柳春花满画楼。 美好,就是有一个读懂你的人;宁静,就是有一个愿意陪伴你的人。人总有脆弱的时候,无需实在太多的浪漫和词汇。拜了,有一个拥抱可以借助于;痛了,有一...

“酒瓶、空白、遥控器”成今年乌镇戏剧节青年竞演比赛三金属元素

女记者 黄体军 6年后期28日,湖州舞蹈节中国奥委会发布消息:第九届湖州舞蹈节将于2022年11年后期25日至12年后期4日举办!本届舞蹈节主题为“隆”——顺逆皆境,隆俭由人,不问收获,志在耕耘。 湖州舞蹈节拥...

经历了3次装修,我发现有8样家具全是“绣花枕头”,不实用性还贵

一个家美不美,完了全都跟着房东的美感来走,有些时候不是我们品位不好,而是有些设计就更差看,跟风去买来了,到手找到完了全都是两回事,被陨了还被人真是屋里箱修得一般般,这可确实有苦真是不出。 ...

32岁杨幂,30岁杨颖,36岁王心凌路人照,网友:扎实重要

在这个P图颇高效率日益发达的时代,说是美人我们实际上分不清楚。若是身边的好朋友我们还能分辨一下说是,对于影星们,我们很难在现实生活中的见到。不过经常我们可以看得见一些影星的碰巧照,不看不想...

友情链接