一条一条的取数据然后再处理
---step1:匹配情况表,[终端序列号]长度不变
UPDATE b SET b.[厂商]=a.[厂商],b.[设备型号]=a.[设备型号]
FROM zhouyx.dbo.账面库存 a INNER JOIN zhouyx.dbo.实物库存_1 b ON a.终端序列号=b.终端序列号
---step2:匹配情况表,[终端序列号]长度改变(用到游标)
DECLARE @序列号长度 int
DECLARE order_cursor cursor --定义游标
for (SELECT LEN(终端序列号) 序列号长度 FROM zhouyx.dbo.实物库存 GROUP BY LEN(终端序列号) ) --为游标赋值一个数据集
open order_cursor --打开游标
fetch next from order_cursor into @序列号长度 --开始循环游标变量(从数据集中拿出第一条数据)
while @@FETCH_STATUS = 0 --返回被 FETCH语句执行的最后游标的状态 (固定写法)
begin
UPDATE b SET b.[厂商]=a.[厂商],b.[设备型号]=a.[设备型号] FROM zhouyx.dbo.账面库存 a,zhouyx.dbo.实物库存_1 b WHERE b.[厂商] IS
NULL AND RIGHT(a.终端序列号, @序列号长度)=b.终端序列号
fetch next from order_cursor into @序列号长度 --转到下一个游标(取下条数据集)
end
close order_cursor -- 关闭游标
deallocate order_cursor -- 释放游标