table1
ID 项目      类型    长度
1  计量单位  字符     20
2  数量      数字     4table2
ID  书名现要将table2添加列为 
ID   书名  计量单位(varchar(20))  数量(int(4))
这个用SQL语言怎样实现

解决方案 »

  1.   

    是不是table1继续加一条数据table2就增加一列?如果这样你的table2还是用视图好
      

  2.   

    这两个表没有关系
    要实现的就是根据table1的内容动态的增加table2的列
      

  3.   

    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 #tdrop table #test
    drop table #t
    id          计量单位                 数量          
    ----------- -------------------- ----------- (所影响的行数为 0 行)
      

  4.   

    ...難道每當table1裏面添加一條記錄,就修改table2的表結構增加一列?
      

  5.   

    table1
    ID 项目      类型    长度
    1  计量单位  字符     20
    2  数量      数字     4说明一点~这样设计没错,但是 int 是没有长度的~ 如果是datetime 也是~ 把 没有长度的[长度] 换成为null 或是 ''