在2005 SQLEXPRESS ,我有个数据库company,其中有个企业信息表(information),我想为这个表做个设定,就是循环覆盖,这个表的行数上限假定是50000行,当到了50001行时候自动覆盖第一行数据,50002行自动覆盖第二行数据,依此类推。该怎么弄,谢谢!
解决方案 »
- 确认一个varchar问题
- 求在计划日期里完工的品种和数量!
- 如何在事务中将某个数据库的某个用户添加到某个角色
- 晕了,不知道那个是对的
- 请问如何取得这样得几列数据
- 求一个sql语句的写法
- 我的XP PRO不能装SQL SERVER 2000?
- 论坛出现这样的错误是怎么回事Microsoft OLE DB Provider for SQL Server 错误 '80040e14'
- 急 这样的错误怎样解决? 是什么原因呢? 在线给分!!!!!!!!!!!!!
- 高龄菜鸟的深奥问题(关于SQL-Server)
- 为什么有大量的“未发布的命令”
- power designer概念模型 实体样式显示问题【有图】
alter table information add [id] int IDENTITY (100, 1) NOT NULL
每次插入前进行判断:表中的记录条数和要插入的记录条数,两者之和是否大于50000
1.不大于的化,直接插入(注意id是自增长字段,会自动赋值)
2.大于的化,如两者之和=50100,那么删除50100-50000=100条,
注意这100条应该是前100条,也就是id最小的100条
3.插入记录语句如下:
declare @sql varchar(8000)
set @sql='if (select count(*) from company)+(select count(*) from 插入表)>50000
delete from company where id in (select top ((select count(*) from company)
+(select count(*) from 插入表)-50000) id from tb order by id)
insert company select * from 插入表'
--print(@sql)
exec(@sql)