动态查询后的结果,再存到其他表里,怎么做?
create table a
(
名称 varchar(50),
数车加工 varchar(50),
加工中心 varchar(50),
去毛 varchar(50),
气试 varchar(50),
)
insert into a values('A','是','否','是','是')
declare @sql varchar(8000)
select @sql = isnull(@sql + ' union all ' , '' ) + ' select 名称 , [是否] = ' + quotename(Name , '''') + ' from a'
from syscolumns
where ID = object_id('a')
order by colid asc
exec(@sql + ' order by 名称 ')
--这个结果我想存到其他表里
[解决办法]
象这种来自同一个表的数据,用得着动态sql语句吗,不用还简单,用了还麻烦
[解决办法]
增加一个新表 new_a,然后把exec执行的结果直接插入到new_a表中:
create table a
(
名称 varchar(50),
数车加工 varchar(50),
加工中心 varchar(50),
去毛 varchar(50),
气试 varchar(50),
)
insert into a values('A','是','否','是','是');
--新建一个存放动态结果的表:new_a
create table new_a
(
名称 varchar(50),
是否 varchar(50)
);
declare @sql varchar(8000)
select @sql = isnull(@sql + ' union all ' , '' ) + ' select 名称 , [是否] = ' + quotename(Name , '''') + ' from a'
from syscolumns
where ID = object_id('a')
order by colid asc
select @sql
--set @sql = 'select * into new_a from (' + @sql + ') a'
--把动态产生的结果,插入到new_a
insert into new_a
exec(@sql + ' order by 名称 ')
select *
from new_a
[解决办法]
3楼、4楼方法都可以啊
[解决办法]
#3 的就可以咯
[解决办法]
只要把你查询出来的数据在insert into 一张新表里即可