sql server游标循环

一条一条的取数据然后再处理

---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   -- 释放游标
上一篇:《C++ AMP:用Visual C++加速大规模并行计算》——3.9 数学库函数


下一篇:记账本