SQL用一个变量来代表多个表,所有操作都直接对这个表变量进行操作,省去反复修改表名的麻烦,如何编写? 5

SQL中要对很多个表进行一系列相同的操作(select,update之类的),想用一个变量来代表这个表,然后所有操作都直接对这个表变量进行操作,省去反复修改表名的麻烦。... SQL中要对很多个表进行一系列相同的操作(select,update之类的),想用一个变量来代表这个表,然后所有操作都直接对这个表变量进行操作,省去反复修改表名的麻烦。 展开
 我来答
唐城冬
2018-07-16 · 大家一起学习进步吧!!!
唐城冬
采纳数:915 获赞数:1815

向TA提问 私信TA
展开全部
一个表变量只能存一个表的数据,不能多个的
追问
例如,对表proj_collecting进行一系列操作,代码中,proj_collecting多次被用到,但proj_collecting表修改完了,可能是表cnt_m,表pay_amt_m,表proj_bal……等等。每换一个表,就得按^+F来替换一回表名,实在麻烦,有没有办法设一个变量(如:表变量=“我设定的表名")来代表这个表,每次只改这个变量的值,而其它代码不动?
追答
真是不建议你这样做,因为你这样操作的话要加事务的,不加事务有一处报错,其它地方没有报的就执行成功了,还是一个表一个表的修改吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wendua
2018-08-02 · TA获得超过307个赞
知道小有建树答主
回答量:417
采纳率:75%
帮助的人:149万
展开全部
要用动态sql
sqlserver里面是这样写的
declare @tablename nvarchar(50);
declare @sql nvarchar(max);
set @tablename='表名'
set @sql='select * from ' +@tablename +' where 1=1'
exec(@sql)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友e4b2715
2018-07-17 · TA获得超过191个赞
知道小有建树答主
回答量:313
采纳率:94%
帮助的人:126万
展开全部
把要修改的表名存放在一张表里面,使用动态SQL操作
追问
具体语句如何写?能写个例子吗?谢谢
追答
如果是手工操作,不需要通过程序运行
select 'update ' || tab_name || ' set columnA = *** where ....' from table;
这个语句可以生成一批update的SQL,手工运行一下就好
如果是通过程序,需要设定一个变量和游标, 用的是PL/SQL,如需其它语言,请自行修改

declare

cursor get_data for
select tab_name from table;

v_sql varchar2(1000);
begin
for cc in get_data loop

v_sql := 'update ' || cc.tab_name || ' set columnA = *** where .....';
execute immediate v_sql;
end loop;

end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式