while @i<=@count
begin
...30万用这个不慢才怪?你要的转换是什么样的?192.168.0.1 =>192168000001 这样嘛?

解决方案 »

  1.   

    换成这样试试,我觉得你每次修改都提交才好.不然可能对后边的select产生性能影响.
    30w做这中计算,应该不会快吧.
    begin tran
    update ip set startip_int=@startip_int where startip_string=@startip_string
    if @@error <> 0 
    begin
    raiserrror('更新出错',16,1)
    return
    end
    update ip set endip_int=@endip_int where endip_string=@endip_stringcommit trans
      

  2.   

    update ip set startip_int=dbo.f_IP2Int(startip_int)
    ,endip_int=dbo.f_IP2Int(endip_int) where startip_int is null
    或者干脆用这个.