111,097
社区成员




declare cr cursor for select StartIP from Tab_IP
open cr
declare @StartIP varchar(16)
fetch next from cr into @StartIP
while @@fetch_status=0
begin
declare @NewStartIP varchar(16)
declare @pos0 int, @pos1 int, @pos2 int, @pos3 int, @pos4 int
select @pos0 = 0
select @pos1 = charindex('.', @StartIP, @pos0 + 1)
select @pos2 = charindex('.', @StartIP, @pos1 + 1)
select @pos3 = charindex('.', @StartIP, @pos2 + 1)
select @pos4 = Len(@StartIP) + 1
select @NewStartIP = replicate('0', 3 - (@pos1 - @pos0 - 1)) + substring(@StartIP, @pos0 + 1, @pos1-@pos0) +
replicate('0', 3 - (@pos2 - @pos1 - 1)) + substring(@StartIP, @pos1 + 1, @pos2-@pos1) +
replicate('0', 3 - (@pos3 - @pos2 - 1)) + substring(@StartIP, @pos2 + 1, @pos3-@pos2) +
replicate('0', 3 - (@pos4 - @pos3 - 1)) + substring(@StartIP, @pos3 + 1, @pos4-@pos3)
update Tab_IP set StartIP=@NewStartIP where StartIP=@StartIP
fetch next from cr into @StartIP
end
close cr
deallocate cr