首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

列的动态添加,该如何解决

2012-01-29 
列的动态添加table1ID项目类型长度1计量单位字符202数量数字4table2ID书名现要将table2添加列为ID书名计量

列的动态添加
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 行)

热点排行