目前是这样
a表为主表,pk为一serialno的序列号(从1开始设定为自动增加)
a表中有一字段为k,该值标示原始数据的来源(比如从b表来则k值为bk)
另有若干b,c,d等表为临时使用表(但不删除)
将临时表的数据导入a表汇总
同时需要设定k字段
现在在存储过程里传入b或c的表名以及需要设定的k字段
其他项目直接可以拷贝(列名字段长度以及约束条件均相同)
请问如何做比较好?
我现在这样写好象不行
直接
exec ('insert into dbo.a (k,c1,c2,c3...) values('+ @k +',select (c1,c2,c3...) from ' + @t )
提示语法不正确
请问如何解决?
或者说各位给个好的做法?谢谢

解决方案 »

  1.   

    exec ('insert into dbo.a (k,c1,c2,c3...) select '+ @k +',c1,c2,c3... from ' + @t )
      

  2.   

    多谢神速的回答,hehe 
    问一下
    不用游标的话
    @k的值会插入每一条数据么?
      

  3.   

    1、说明:复制表(只复制结构,源表名:a 新表名:b) (Access可用) 
    法一:select * into b from a where 1 <>1 
    法二:select top 0 * into b from a 2、说明:拷贝表(拷贝数据,源表名:a 目标表名:b) (Access可用) 
    insert into b(a, b, c) select d,e,f from a; 
      

  4.   

    exec ('insert into dbo.a (k,c1,c2,c3...) select ( ' + @k + ',c1,c2,c3...) from ' + @t )