比如已有a1,a2,a3字段,现在有很多列新的数据,要拷到新建列a4,a5,a6...中。
用insert column_name 的语句好像,发现在把数据填入a4的同时,其他列都成了NULL,
这样进行下去成了只有对角线上有数据。

解决方案 »

  1.   

    insert tb(a4,a5,a6) select ...from ...
      

  2.   

    用insert的时候
    比如insert into tb(t4,t5,t6) values(4,5,6)
    在把数据填入后,t1,t2,t3列都成了NULL,这样是对的啊,它不需要数据啊
      

  3.   

    先弄清是插入还是更新插入的话    a1,a2,a3就为空。  更新的话用 update 麻烦些
      

  4.   


    我说的是更新。用UPDATE能做到吗?
      

  5.   


    我现在有许多人的购物消费的数据库(包括开始时间、结束时间,和商店的距离)
    现在需要产生一个两维统计表:0分钟时距离为0 的有多少人,15分钟时距离为0.2 的有多少人,30分钟时距离为0.3 的有多少人,.....依此类推
    用列a1,a2,a3..来表明距离轴,用行来标明不同时间。程序如下,输出时除了a1列正确的算出了数以外,其余都是null,想问问怎么样把其余列也自动计算出来?use SurveyInfodeclare @distance decimal(6,3), @times int, @tongji int, @sql varchar(500), @number int
    set @distance=0
    set @times=0
    set @number=1drop table results
    create table results
    (
    a1 int
    )WHILE (@distance<=20)
    BEGIN WHILE (@times<=1440)
    Begin
    select @tongji=count(*) from dbo.VIEW2  --view2里是所用数据,所有人的购物距离,开始时间和结束时间
    where (StartMin<=@times)
      AND (EndMin>@times) AND (离家距离>=@distance) AND (离家距离<(@distance+0.2))
    insert results (a1) values (@tongji) --如何用循环自动填满a2...直到a102?
    select @times=@times+15
    End

    select @distance=@distance+0.2
    select @number=@number+1
    select @sql='ALTER TABLE results ADD a'+convert(varchar(10),@number)+' int' --自动加一列
    exec(@sql)

    END
    select * from results
      

  6.   

    alter table 
    add column a4 varchar(20),a5 varchar(20),a6 varchar(20)
    这样a1,a2,a3都不变,而a4,a5,a6.默认为NUL.
    可以改默认 加default就行了~~~