高分求助,如何利用一个表中数据的内容动态的生成其它表的结构? exec ('select '+@列+' from '+@表) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 通过select元数据表select @列变量1=列1,@列变量2=列2 from 元数据表set @临时变量=@列变量1+','+@列变量2exec('select '+@临时变量+'from '+@表名变量) 举个例子示范一下,实际应用可能需要改很多东西,原理一样的。create table tab_scrib ( colname varchar(18),coltype varchar(18))goinsert tab_scrib values ('id','int')insert tab_scrib values ('age','int')insert tab_scrib values ('date','datetime')gocreate proc proc_create_table asbegin declare @str varchar(800) select @str= 'create table test_table ( ' select @str = @str + colname + ' ' + coltype + ',' from tab_scrib select @str = left(@str,len(@str)-1) + ')' exec (@str)endgoselect * from test_table create table tab_scrib ( colname varchar(18),coltype varchar(18))goinsert tab_scrib values ('id','int')insert tab_scrib values ('age','int')insert tab_scrib values ('date','datetime')gocreate proc proc_create_table asbegin declare @str varchar(800) select @str= 'create table test_table ( ' select @str = @str + colname + ' ' + coltype + ',' from tab_scrib select @str = left(@str,len(@str)-1) + ')' exec (@str)endgoproc_create_table goselect * from test_table关键就是用现有的表的内容拼成你需要的字符串。 电脑号码用什么数据类型,长途号码第一个“0”用什么类型 数据库连接问题 关于数据库设计的问题——SQLServer? [求]关于mssql的分页和锁 多表查询的数据为什么会重复出现一次的数据??? 一个很奇怪让人很郁闷的问题,请高手指教! sql server 分组问题 这样的情况怎么判断 查询sql中大量数据问题 请问一个关于Max作为查询条件的问题 pengdali大侠请进! 用何种方式才能使CRecordSet类支持动态集(Dynamic)方式连接SQL Server 7.0 ?
set @临时变量=@列变量1+','+@列变量2
exec('select '+@临时变量+'from '+@表名变量)
create table tab_scrib ( colname varchar(18),coltype varchar(18))
go
insert tab_scrib values ('id','int')
insert tab_scrib values ('age','int')
insert tab_scrib values ('date','datetime')
go
create proc proc_create_table
as
begin
declare @str varchar(800)
select @str= 'create table test_table ( '
select @str = @str + colname + ' ' + coltype + ',' from tab_scrib
select @str = left(@str,len(@str)-1) + ')'
exec (@str)
end
go
select * from test_table
go
insert tab_scrib values ('id','int')
insert tab_scrib values ('age','int')
insert tab_scrib values ('date','datetime')
go
create proc proc_create_table
as
begin
declare @str varchar(800)
select @str= 'create table test_table ( '
select @str = @str + colname + ' ' + coltype + ',' from tab_scrib
select @str = left(@str,len(@str)-1) + ')'
exec (@str)
end
go
proc_create_table
go
select * from test_table
关键就是用现有的表的内容拼成你需要的字符串。