最近的项目中遇到一个根据一个表的ID来将表A的部分列数据添加到表B中.考虑使用游标对于性能的影响,且表A的主键是自增的数值型,所以采用获取最大值与最小值的方法来添加数据.方法如下:
declare @maxID bigint
declare @minID bigint
--设置初始值
set @maxID = 0
set @minID = 0
--计算最大值与最小值
select @minID=MIN([ID]) FROM Table_A WHERE 条件
select @maxID=Max([ID]) FROM Table_A WHERE 条件
declare @nTmp bigint
set @nTmp = @minID
while @nTmp <= @maxID
BEGIN
if exists( SELECT [ID] FROM Table_A WHERE [ID]=@nTmp
begin
//插入table_a的数据到table_b
end
set @nTmp=@nTmp+1
END