zoukankan      html  css  js  c++  java
  • SQL创建IP地址数据表存储过程

    主要目的:搜集整理全部单独IP地址对应的国家城市地区信息

    测试说明:数据库太大了:4129151.0009765625K=4032.37402439117431640625M

    结果说明:似乎不太可能方便更快的查询速度,也好象没有必要整理这么详细的数据.还是从别人的IP数据库好了

    失败证明:商务通IP数据库从哪里来?QQIP数据库是否适合中小型企业?不知道对俺的硬盘损坏大不大.5分钟写了800M到D盘.

    测试执行语句:--exec sp_CreateIPTable
    select top 1 * from ipdata order by id desc
    ID=1508872;IP="0.23.6.7" 查询时间:"5分钟"

    技术学习:熟练掌握SQL存储过程中的SQL循环语句使用

    存储过程代码:

    CREATE PROCEDURE sp_CreateIPTable
    AS

    --创建IP数据表
    if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[IPTable]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
    drop table [dbo].[IPTable]

    CREATE TABLE [dbo].[IPTable] ( 
     [ID] int identity(1,1) PRIMARY KEY CLUSTERED NoT NULL ,
     [IP] [nvarchar] (15) COLLATE Chinese_PRC_CI_AS NULL , 
     [IPCountry] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
     [IPProvince] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL ,
     [IPAddress] [nvarchar] (20) COLLATE Chinese_PRC_CI_AS NULL  
    ) ON [PRIMARY]
    --查询全部时间段内的数据到临时数据表中
    declare @TempIP nvarchar(16)

    declare @FirstNumber int
    declare @SecondNumber int
    declare @ThirdNumber int
    declare @FourthNumber int

    --初始化喜欢参数

    set @FirstNumber=0
    set @SecondNumber=0
    set @ThirdNumber=0
    set @FourthNumber=0

    while @FirstNumber<256
    begin
       while @SecondNumber<256
     begin
      while @ThirdNumber<256
      begin
         while @FourthNumber<256
       begin 
         set @TempIP=convert(nvarchar(3),@FirstNumber) +'.'+ convert(nvarchar(3),@SecondNumber) +'.'+ convert(nvarchar(3),@ThirdNumber) +'.'+ convert(nvarchar(3),@FourthNumber)
           insert into IPTable (IP) values(@TempIP)
          set @FourthNumber=@FourthNumber+1
       end
       if @FourthNumber=256 set @FourthNumber=0
         set @ThirdNumber=@ThirdNumber+1
      end
      if @ThirdNumber=256 set @ThirdNumber=0
        set @SecondNumber=@SecondNumber+1
     end
     if @SecondNumber=256 set @SecondNumber=0
       set @FirstNumber=@FirstNumber+1
    end

    --select * from IpTable
    GO
     

  • 相关阅读:
    Unity3D Editor模式下批量修改prefab
    3D touch在Unity3D中的使用
    Unity中的协程是什么?
    Unity3D脚本调用Objective C代码实现游戏内购买
    WindowsPhone8拍照功能实现简介
    WindowsPhone App如何扩展能够使用的内存
    SVN 提交代码时提示文件已经存在解决办法
    iOS检查App新版本并更新新版本
    iOS存储数据字典到沙盒
    统计整个Xcode工程代码行数
  • 原文地址:https://www.cnblogs.com/xqf222/p/3306876.html
Copyright © 2011-2022 走看看