exec('select top'+convert(varchar(20),10)+' into newtable from oldtable')

解决方案 »

  1.   

    declare @num int
    set @num=100         --要导入的记录条数--导入处理(如果表中没有主键)
    declare @sql varchar(8000)
    set @sql='insert into 另一个表 select top '+cast(@num)+' * from 原表'
    exec(@sq)
    exec('alter table 原表 add id int identity(1,1)')
    delete from 原表 where id<=@num
    exec('alter table 原表 drop column id ')
      

  2.   

    create proc test @values varhcar(10)
    as
    begin tran
    insert 表1
    select * from 表2
    where col = @values
    if @@error <> 0 goto errdelete from 表2 where col = @values
    if @@error <> 0 goto errcommit tran
    return
    err:
       rollback tran
       return
    go
      

  3.   

    --如果表中有主键的情况:declare @num int
    set @num=100         --要导入的记录条数--导入处理(如果表中没有主键)
    declare @sql varchar(8000)
    set @sql='insert into 另一个表 select top '+cast(@num)+' * from 原表'
    exec(@sq)
    set @sql='delete from 原表 where 主键 in(select top '+cast(@num)+' from 原表)'
    exec(@sql)