视图的数据是根据基本表计算而得,为了计算方便,我想再把视图的数据插入到另一张新表,请问:这张新表内容可以根据基本表并通过视图而自动更新吗.如果可以直按用INTO就可以了吗.
create view vv_管理
as
Select 
N'一月份'As 月份,
IsNull(SUM(view1),0) As  view1,
IsNull(SUM(view2),0) As view2,
IsNull(SUM(view3),0) As view3,
IsNull(SUM(hetonge1),0) As hetonge1,
IsNull(SUM(view4),0) As view4
From v_管理
Where Month(liulan1)=1 And Year(liulan1)=Year(GetDate()) 
如我想把以上视图计算的数据放入到另一张新表,得如何做啊.可以自动更新吗.
大家有时间帮看下,谢谢!

解决方案 »

  1.   

    1、视图不能用into
    2、用新表的必要性并不大
      

  2.   


    insert tablename (...)
    Select 
    N'一月份'As 月份,
    IsNull(SUM(view1),0) As  view1,
    IsNull(SUM(view2),0) As view2,
    IsNull(SUM(view3),0) As view3,
    IsNull(SUM(hetonge1),0) As hetonge1,
    IsNull(SUM(view4),0) As view4
    From v_管理
    Where Month(liulan1)=1 And Year(liulan1)=Year(GetDate()) 
    插入数据
      

  3.   

    象楼主的说法,可以写成一个月统计存储过程SP_xxx(备注:包含月统计过程和插入新表的过程),再使用触发器or自动作业来执行存储SP_xxx。
      

  4.   

    按楼上的方法,我直接把视图的数据插入到另一张表中。如:
    视图:月份 view1 view2 view3 hetonge1 view4
    目标表单:aa view1 bb view3 hetonge1 view4
    其中:aa为人工输入,bb=aa-view1
    为了计算方便,我把基本表统计出的数据放入到视图中,再把视图的数据插入到另一张表中(不知道这么设计是否合理,插入表数据是否能更新)。
    问题1.为什么目标表单中的aa,bb字段不允许插入呢。
    大家帮看下啊,谢谢了!
      

  5.   

    大家有时间再帮看看啊,初学SQL,存储过程过程这个东东从来没用过啊,用其它方法可以实现吗,如只能用存储过程,大家能否给写些把视图数据插入到表里存储过程的示例代码啊.
    谢谢!
      

  6.   

    SELECT * INTO 新表名 FROM 视图名
      

  7.   

    insert AA select 0 as addd1 from
    (Select 
    N'一月份'As 月份,
    IsNull(SUM(view1),0) As  view1,
    IsNull(SUM(view2),0) As view2,
    IsNull(SUM(view3),0) As view3,
    IsNull(SUM(hetonge1),0) As hetonge1,
    IsNull(SUM(view4),0) As view4
    From v_管理
    Where Month(liulan1)=1 And Year(liulan1)=Year(GetDate()))
    大家帮看下这段代码哪里有问题,目的是把视图V_管理的数据插入到表AA,并把0插入到字段addd1里.
      

  8.   

    如果表AA存在insert AA Select 
    N'一月份'As 月份,
    IsNull(SUM(view1),0) As  view1,
    IsNull(SUM(view2),0) As view2,
    IsNull(SUM(view3),0) As view3,
    IsNull(SUM(hetonge1),0) As hetonge1,
    IsNull(SUM(view4),0) As view4,
    0 As addd1 
    From v_管理
    Where Month(liulan1)=1 And Year(liulan1)=Year(GetDate())但是字段名要一一對應上
    如果表AA不存在Select 
    N'一月份'As 月份,
    IsNull(SUM(view1),0) As  view1,
    IsNull(SUM(view2),0) As view2,
    IsNull(SUM(view3),0) As view3,
    IsNull(SUM(hetonge1),0) As hetonge1,
    IsNull(SUM(view4),0) As view4,
    0 As addd1 
    Into AA 
    From v_管理
    Where Month(liulan1)=1 And Year(liulan1)=Year(GetDate())