有一表,它包有smalltime類型字段,
現在我要做的是:
原表中只保存最新的500條記錄,
其它記錄轉存到一個新表中,這個新表是以T+當前日期的月分命名的。
轉存以后,原表中最新500條以外的記錄,要刪除。
謝謝。
9 个解决方案
select top 500 * from 表 order by 最新條件
select top 500 * from mynewtable into mytalbe order by mytime desc
drop myoldtable
declare @sql varchar(8000)
set @sql='select top 500 * into T'+convert(char(6),getdate(),112)+' from 表 where smalltime類型字段 not in (select top 500 smalltime類型字段 from 表 order by smalltime類型字段 desc'
exec(@sql)
delete 表 where smalltime類型字段 not in (select top 500 smalltime類型字段 from 表 order by smalltime類型字段 desc)
select top 500 * from myoldtable into mynewtable order by mytime desc
drop myoldtable
declare @nummax integer
select identity(int,1,1) as colxh,* into #temptb from tablename
select @num500 = max(colxh) - 500 from #temptb
delete from tablename where 主鍵列 not in (select 主鍵列 from #temptb where xh > @num500 )
drop table #temptb
大力的已經達到你的要求了..
declare @sql varchar(8000)
set @sql='select top 500 * into T'+convert(char(6),getdate(),112)+' from 表 where smalltime類型字段 not in (select top 500 smalltime類型字段 from 表 order by smalltime類型字段 desc'
exec(@sql)
delete 表 where smalltime類型字段 not in (select top 500 smalltime類型字段 from 表 order by smalltime類型字段 desc)