易截截图软件、单文件、免安装、纯绿色、仅160KB

sql server数据库表能自动删除行吗?

我用sql server数据表存放一些信息,发现数据库增加速度很快。

能否设置表的大小后,让它自动删除最先的数据。

例如设置表容量为10000行,像队列一样,如果有新数据进来,就删除掉最先的数据。

PS:不想用作业来实现,不知道数据库表是否有这个功能。谢谢~
不用作业,那只有用触发器了,插入的时候判断一下。

其他好像没办法

触发器。。。

触发器。

触发器也不好用 还是用作业比较好

触发器来处理吧

如果规模可控制的话,用作业好些,定时执行。
否则,只能用触发器了。

或者写个JOB定时跑,效率高点

SQL code:
--最多允许3条
CREATE TABLE TB(COL INT)
INSERT TB
SELECT 1 UNION ALL
SELECT 2
GO
CREATE TRIGGER TRIGGER_TB ON TB
INSTEAD OF INSERT
AS
DECLARE @RC INT, @ROWCOUNT INT
SET @ROWCOUNT=@@ROWCOUNT
SET @RC=(SELECT COUNT(*) from TB)
IF @ROWCOUNT+@RC>3
BEGIN
SET @ROWCOUNT=@ROWCOUNT+@RC-3
SET ROWCOUNT @ROWCOUNT
DELETE TB
SET ROWCOUNT 0
END
INSERT TB
SELECT * from INSERTED
GO

INSERT TB
SELECT 3 UNION ALL
SELECT 4


SELECT * from TB

DROP TABLE TB
/*
COL
-----------
3
2
4
*/


用触发器,作业呀,这个我知道。

难道在表设置里没有这个功能吗?

没有这方面的设置

可以尝试使用"数据复制"或"DTS",但本质上和作业区别不大。sql server系列暂时没有楼


相关问答:

sql server 存储过程循环赋值的问题

小弟是个新手 现在有个问题一直不能解决
例如
procedure produce_proc
    @p001 nvarchar(8000),
    @p002 nvarchar(8000),
    @p003 nvarchar(8000),
  & ......

sql查询疑问

表中按datadate,tradeid为主键,也就是说tradeid会重复出现在不同天中,同一天的tradeid是不同的。现在我希望取一段时间范围内不重复的tradeid,且只要每个tradeid的最后一次出现的那条。sql语句该怎么写

: ......

请教各位大哥一个Sql问题,哪个班级的教师待遇最高?

小弟最近遇到一个问题,要求得出哪个班级的教师待遇最高,把同一个班级的教师待遇合计起来


班级表                  教师表

班级ID    & ......

又一个SQL技巧问题……

SQL code:
select *,cast(bin as decimal(10,2)) as bin2 into #tmp2
from MyTable
where convert(varchar(10),[Time],120) between '2009-07-01' and '2009-10-28 23:59:59'
order by bin2


其中bin ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号