这个样子的,为了提高同步速度。把一张表分成三部分分别导入到一张新表中,每次更新100条,因为数据不确定,以后还会增加数据,所以用过程加作业实现,别跟我说复制那个工具,要过程,求大神指点迷经
declare @count int
select @count=count(*) from T_SS
SELECT TOP 100 id,utime,SID
INTO #T_SS1
FROM T_SS WITH(NOLOCK)
group by id,utime,SID
having SID >0 AND
SID <= @count/3
ORDER BY SID
SELECT TOP 100 id,utime,SID
INTO #T_SS2
FROM T_SS WITH(NOLOCK)
group by id,utime,SID
having SID >@count/3 AND
SID <= @count*2/3
ORDER BY SID
SELECT TOP 100 id,utime,SID
INTO #T_SS3
FROM T_SS WITH(NOLOCK)
group by id,utime,SID
having SID >@count*2/3
ORDER BY SID
merge into T_S B
using #T_SS1 A
on A.SID = B.SID
when not matched then
INSERT(iD,utime,SID)
values(iD,utime,SID)
when matched then
UPDATE
SET B.ID=A.ID,B.UTIME=A.UTIME,B.SID=A.SID;
merge into T_S B
using #T_SS2 A
on A.SID = B.SID
when not matched then
INSERT(iD,utime,SID)
values(iD,utime,SID)
when matched then
UPDATE
SET B.ID=A.ID,B.UTIME=A.UTIME,B.SID=A.SID;
merge into T_S B
using #T_SS3 A
on A.SID = B.SID
when not matched then
INSERT(iD,utime,SID)
values(iD,utime,SID)
when matched then
UPDATE
SET B.ID=A.ID,B.UTIME=A.UTIME,B.SID=A.SID;
我这差个循环,怎么搞都搞不好
------解决思路----------------------



只要你自己控制好@startSID、@endSID 的计算公式,就算一开始只有1条记录,只会归到第一个作业中。
如果都包含了记录1,肯定是后两个作业的 @startSID 算错了。