列的动态添加
table1
ID 项目 类型 长度
1 计量单位 字符 20
2 数量 数字 4
table2
ID 书名
现要将table2添加列为
ID 书名 计量单位(varchar(20)) 数量(int(4))
这个用SQL语言怎样实现
------解决方案--------------------create table #t (id int)
create table #test (ID int, 项目 varchar(20),类型 varchar(20), 长度 int)
insert into #test
select 1 , '计量单位 ', '字符 ', 20 union all
select 2 , '数量 ', '数字 ' , null
declare @sql varchar(2000)
set @sql= 'alter table #t add '
select @sql=@sql+项目+ ' '+ replace(replace(类型, '字符 ', 'varchar '), '数字 ', 'int ') +
case when 长度 is null then ', ' else '( '+ cast(isnull(长度, ' ') as varchar)+ ') , ' end from #test
set @sql=left(@sql,len(@sql)-1)
print @sql
exec(@sql)
select * from #t
drop table #test
drop table #t
id 计量单位 数量
----------- -------------------- -----------
(所影响的行数为 0 行)