将000001到000200添加到临时表,然后用in或exists方法,这应该是最快的了000001到000200添加到临时表,注意插入方法

解决方案 »

  1.   

    declare @sql varchar(8000)
    set @sql='select top 20 identity(int,1,1) id into ##tem
      from syscolumns a,syscolumns b,syscolumns c'
    exec(@sql)--批量插入
    select right('00000'+cast(id as varchar),5) from ##tem
     where not exists(select * from t
                      where id=right('00000'+cast(##tem.id as varchar),5))
    drop table ##tem
      

  2.   

    select top 2000000 identity(int,1,1) id into ##tem  from syscolumns a,syscolumns b,syscolumns c
    这条语句比较拽啊,后边用到3个syscolumns 的意图是不是其记录数的3次方个?