日期:2014-05-19  浏览次数:20797 次

insert(select)中的序号问题
insert(select)中的序号问题
我现在用insert(select   )   的方法从一张表中取数据,存到另外一张表里去。
这样新的表的明细号就是用原来表中的明细号。
但是现在希望新表中的明细号也变更成从0开始的。不知道有什么好办法。否则我就要做大改动了。

希望各大高手帮忙。谢谢

------解决方案--------------------
在新表增加一个自增列
alter table 新表 add id int identity(0,1)
------解决方案--------------------
select identity(int,1,1) as 序号,* into #t from 原表;
insert into 目的表 select 序号-1,其它字段 from #t;
drop table #t;
------解决方案--------------------
插入时不要在insert中指定id字段,则id会自动从0开始的.
------解决方案--------------------
SELECT '20240 ' as 'C_Dno ', '1 ' as 'C_DMno ',identity(int,0,1) as 'C_ShiwakeMno ',T_whd05_s_Temp.C_NyuDate,T_whd05_s_Temp.C_BumonCd,T_whd05_s_Temp.C_CstsFlg,T_whd05_s_Temp.C_kmCd,T_whd05_s_Temp.C_SiwakeKng,T_whd05_s_Temp.C_AZkb,T_whd05_s_Temp.C_Zeirit,T_whd05_s_Temp.C_AZKkb,T_whd05_s_Temp.C_Tk,T_whd05_s_Temp.C_SonotaFlg,T_whd05_s_Temp.C_TokuCd,T_whd05_s_Temp.C_SeikyuNo,T_whd05_s_Temp.C_SapFlg,T_whd05_s_Temp.C_SapDate, '0 ' as 'col1 ', '20070417 ' as 'col2 ', '16093087 ' as 'col3 ', '0941 ' as 'col4 ', '20070417 ' as 'col5 ', '16093087 ' as 'col6 ', '0941 ' as 'col7 '
into #t
FROM
T_whd05_s_Temp
WHERE 条件1 and 条件2


INSERT T_whd05_s(C_Dno,C_DMno,C_ShiwakeMno,C_NyuDate,C_BumonCd,C_CstsFlg,C_kmCd,C_SiwakeKng,C_AZkb,C_Zeirit,C_AZKkb,C_Tk,C_SonotaFlg,C_TokuCd,C_SeikyuNo,C_SapFlg,C_SapDate,C_DelFlg,C_AddDate,C_AddTime,C_AddUser ,C_UpdDate,C_UpdTime,C_UpdUser)
select * from #t;

------解决方案--------------------
SELECT
'20240 ',
'1 ',
identity(int,0,1) as C_ShiwakeMno, --这是明细号
T_whd05_s_Temp.C_NyuDate,
T_whd05_s_Temp.C_BumonCd,
T_whd05_s_Temp.C_CstsFlg,
T_whd05_s_Temp.C_kmCd,
T_whd05_s_Temp.C_SiwakeKng,
T_whd05_s_Temp.C_AZkb,
T_whd05_s_Temp.C_Zeirit,
T_whd05_s_Temp.C_AZKkb,
T_whd05_s_Temp.C_Tk,
T_whd05_s_Temp.C_SonotaFlg,
T_whd05_s_Temp.C_TokuCd,
T_whd05_s_Temp.C_SeikyuNo,
T_whd05_s_Temp.C_SapFlg,
T_whd05_s_Temp.C_SapDate,
'0 ',
'20070417 ',
'16093087 ',
'0941 ' ,
'20070417 ',
'16093087 ',
'0941 '
into #temp
FROM
T_whd05_s_Temp
WHERE
条件1 and 条件2


INSERT
T_whd05_s
(
C_Dno,
C_DMno,
C_ShiwakeMno, --这是明细号
C_NyuDate,
C_BumonCd,
C_CstsFlg,
C_kmCd,
C_SiwakeKng,
C_AZkb,
C_Zeirit,
C_AZKkb,
C_Tk,
C_SonotaFlg,
C_TokuCd,
C_SeikyuNo,
C_SapFlg,
C_SapDate,
C_DelFlg,
C_AddDate,
C_AddTime,
C_AddUser ,
C_UpdDate,
C_UpdTime,
C_UpdUser
)
select * from #temp

drop table #temp