table1
ID 项目 类型 长度
1 计量单位 字符 20
2 数量 数字 4table2
ID 书名现要将table2添加列为
ID 书名 计量单位(varchar(20)) 数量(int(4))
这个用SQL语言怎样实现
ID 项目 类型 长度
1 计量单位 字符 20
2 数量 数字 4table2
ID 书名现要将table2添加列为
ID 书名 计量单位(varchar(20)) 数量(int(4))
这个用SQL语言怎样实现
调试欢乐多
要实现的就是根据table1的内容动态的增加table2的列
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 #tdrop table #test
drop table #t
id 计量单位 数量
----------- -------------------- ----------- (所影响的行数为 0 行)
ID 项目 类型 长度
1 计量单位 字符 20
2 数量 数字 4说明一点~这样设计没错,但是 int 是没有长度的~ 如果是datetime 也是~ 把 没有长度的[长度] 换成为null 或是 ''