日期:2014-05-17 浏览次数:20507 次
-1.把表A的数据插入到表B中
select identity(int,100,1) as Fid,FQty into #TabelB from TableA
--2.把表B的数据插入到表C中(表C的fid为唯一索引)
insert C(fid,fqty) select fid,fqty from #TableB
--3.删除表B
drop table #TabelB
--4.下次再将A的数据插入B,
--B的数据插入C的时候,报错。因为C的fid不允许重复。
请问如何才能让fid不重复?非常感谢!
--补充
--我能取到表C的最大的fid,但是identity()不支持临时变量
declare @fid int
select @fid=FMaxNum+1 from icmaxnum where FTableName='C'
print @fid
--办法一,直接插入,也用不着变量
select identity(int,100,1) as Fid,FQty into #TabelB from TableA
insert C(fid,fqty) select fid + (select FMaxNum+1 from icmaxnum where FTableName='C'),fqty from #TableB
--办法二,间接插入
select identity(int,100,1) as Fid,FQty into #TabelB from TableA
UPDATE #TableB SET fid = (select @fid=FMaxNum+1 from icmaxnum where FTableName='C') + fid
insert C(fid,fqty) select fid,fqty from #TableB
--办法三,用RowNumber时根本不用再用#TableB表来中转