浙江圣固铸造有限公司:请教的是怎么一次性清除一个数据库里所有表的数据,但还要带有条件。

来源:百度文库 编辑:神马品牌网 时间:2024/05/05 15:58:20
我想请教的是怎么一次性清除一个数据库里所有表一年之前的数据。因数据库很多表,要保留一年的数据,所以清除所有表是带有条件的。请各位指教,瞎闹的请正经点。
谢谢了。

没办法

以下过程可删除一年来从没用过的表的数据

declare @name char(256),@xtype char(10),@refdate datetime,@sql char(1024)

declare sysobj_cur cursor
for select name,xtype,refdate from sysobjects where xtype='U' and refdate<2005-02-13
open sysobj_cur
fetch next from sysobj_cur into @name,@xtype,@refdate
while @@fetch_status<>-1
begin
set @sql='delete '+@name
exec(@sql)
end
close sysobj_cur
deallocate sysobj_cur
GO

你说的一次性是指什么?是点一个钮或发生一个事件后就执行清除操作吗?
写一句SQL就可以做到只要在WHERE中加入你要求的条件就OK了

我觉得
一句
delete from Table1 where Time>***;
类似这样的不就行了?
大家议议~

也就是构造一个SQL语句,比如说要删除一年前的数据,数据存放在表ATable中,该表中日期的字段名是Date,那么SQL语句就可以这么写:
DELETE FROM ATable WHERE Date<2005-02-13
应该就是这样

所有表不一定都有时间字段,所以不一定所有表都能用时间来判断处理。
写程序来处理呢又要考虑数据完整性
你有指定那种数据库吗,看从哪里能否找到答案.