ITPub博客

首页 > 数据库 > SQL Server > biaoyue用游标将设备与SIM卡一一关联

biaoyue用游标将设备与SIM卡一一关联

原创 SQL Server 作者:qqesabrina 时间:2015-03-20 16:09:17 0 删除 编辑
SQL Server2008数据库已存在两张表设备表Device和SIM卡表Sim,
Device表中有99900条数据,deviceId分两批连续:
DeviceId BETWEEN 37251413 AND 37252912  (总数1500)
DeviceId BETWEEN 71659789 AND 71758188(总数98400)

Sim表中有100000条数据,Sim卡连续:
SimId BETWEEN 14423 AND 114421 (总数10w)

Device表和Sim表无相同字段,现在需要将99900条Sim表的SimId字段的值写入Device表的SimId表中,不能出现重复取值的情况

方法如下


declare @DeviceId int, --定义一个变量
@SID int; --定义一个变量


declare my_cursor cursor scroll dynamic --scroll表示可以向前或向后移动   dynamic:表示可写也可读,
for
select d.DeviceId from Device d where d.DeviceId BETWEEN 37251413 AND 37252912 


open my_cursor --打开游标


fetch next from my_cursor into @DeviceId --游标停在第一条记录前面,第一次执行,测试有没有记录存在
while(@@fetch_status=0) --取数据,直到-2即没有记录
begin


select TOP 1 @SID =SimId FROM Sim s where s.SimId not in (select d.SimId from Device d where d.simid is not null) and SimId>14422
update [Device] set SimId = @SID where DeviceId = @DeviceId


fetch next from my_cursor into @DeviceId
end
close my_cursor
deallocate my_cursor

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30146086/viewspace-1467524/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2015-02-27

  • 博文量
    1
  • 访问量
    3818