求助,从表中动态获得查询表名,怎么做呢?
有个表 flow,里面保存着一些数据,其中有字段form_id,form_filter保存着,我需要动态查询的表的部分表名和where,flow保存很多数据,假如有一个form_id 值为 tab1,那个就要查询表 form_tab1这个表的中数据select title form form_tab1 where filter=form_filter; (form_filter能保证数据的唯一性)
最后还要把flow的部分数据和这个 查询的 title 一起查询出
各种goolge,百度都没找到方法,大家帮帮忙哦
[解决办法]
要查询多个表的话,用存储过程循环查询,不过这样设计增加了开发难度是否必要
[解决办法]
- SQL code
declare @sql nvarchar(1000)select @sql=''select @sql=@sql+'select title from '+form_id+ ' where filter = '+form_filter+ 'union all ' from flowexec(@sql)
[解决办法]
try this,
- SQL code
create table flow(id int, name varchar(5), descr varchar(5), form_id varchar(5), form_filter varchar(10))insert into flowselect 1,'n_1','d_1','tab1','23231232'create table form_tab1(form_filter varchar(10),title varchar(10))insert into form_tab1select '23231232','t_1'create table #t(id int,title varchar(10))declare ap cursor forward_onlyfor select'select '+rtrim(id)+', title from form_'+form_id+' where form_filter='''+form_filter+''' ' tsqlfrom flowdeclare @sql varchar(6000)open apfetch next from ap into @sqlwhile(@@fetch_status<>-1)begin insert into #t(id,title) exec(@sql) fetch next from ap into @sqlendclose apdeallocate apselect a.id,a.name,a.descr,b.titlefrom flow ainner join #t b on a.id=b.id/*id name descr title----------- ----- ----- ----------1 n_1 d_1 t_1(1 row(s) affected)*/