请教各位如何在sql后台用sql语句增加这个临时表的列和列的数据(50分)

X

xej

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在sql后台写了一个临时表的存储过程,其代码如下:
create table #t(商品编号 varchar(300),商品名称 varchar(300),包装规格 decimal(18,4),整单位 varchar(50),散单位 varchar(50))

insert into #t(商品编号,商品名称,包装规格,整单位,散单位)
select a.code as '商品编号',a.name as '商品名称',a.packstandard as '包装规格',c.name as '整单位',b.name as '散单位' from t_bs_product as a
left join t_codes b on a.bs_unit_dispel_id =b.id
left join t_codes c on a.bs_unit_full_id =c.id
但是这个临时表还需增加列和数据,还需要从select name from t_codes where type=217里查出可随时自动增加的name(名称)作为列,从t_bs_product_datilej里查出数据作为列的数据。请教各位,如何在sql后台用sql语句增加这个临时表的列和列的数据。
 
增加列?反正是临时表,干吗不再建立一个?
 
增加列:
 alter table <tablename> add cloumns <cloumnsname>
至于增加数据可以用插入的方法呀
 
从select name from t_codes where type=217中选出的name可以有很多,这样临时表中的列就是随机可变的,因此使用简单的方法是不能达到要求的!复杂的方法可以参考一下以下交叉表的建立:
declare @sql varchar(8000)
select @sql=@sql+'create table #t(商品编号 varchar(300),商品名称 varchar(300),包装规格 decimal(18,4),整单位 varchar(50),散单位 varchar(50))'
Declare namecursor cursor for select name from t_codes where type=217
Open namecursor
Fetch namecursor into @name
While (@@sqlstatus=0)
select @sql=@sql+@name+' varchar(50)'
fetch namecursor into @name
end
exec(@sql)
go
以上仅供参考!数据插入没有事例!自己去查帮助吧!
 
declare @sql varchar(8000),@sql2 varchar(8000)
select @sql=@sql+'create table #t(商品编号 varchar(300),商品名称 varchar(300),包装规格 decimal(18,4),整单位 varchar(50),散单位 varchar(50)'
select @sql2=@sql2+','+name+' varchar(50)' from t_codes where type=217
exec(@sql+@sql2+')')
go
 
alter table <tablename> add cloumns <cloumnsname>
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
顶部