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 ')
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
--如果表中有主键的情况: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)
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 ')
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
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)