写一个存储过程来执行。
create proc proc1(@tabname varchar(20))
as
begin
declare @sqlstr varchar(1000),@n int
set @sqlstr='insert table2('
select @n=count(*) from syscolumns where id=object_id(@tabname)
select @sqlstr=@sqlstr+name+',' from syscolumns where id=object_id('table2') and colid<=@n
set @sqlstr=left(@sqlstr,len(@sqlstr)-1)+') select * from '+@tabname
exec(@sqlstr)
end
有很多表A表,字段名都不知道,但字段数量都小于20,类型都是VARCHAR,我现在要求把A表的数据都放到B表,不能insert into B(A1,A2,A3,A4,A5) select NAME,TITLE,CONTENT,BACKDESC,OTHER FROM A,因为我没法写A表的字段名,有很多A表啊,这就是我的难点。