读书人

SQL 剔除旧的数据 (删除两年前的所有记

发布时间: 2012-11-20 09:55:43 作者: rapoo

SQL 删除旧的数据 (删除两年前的所有记录)
目前公司的数据库有7年的数据,有没有办法直接把全部表中2年前的都删除?
而不需要一个表一个表的进去删除?
谢谢

[解决办法]
没有。手动数据归档。
[解决办法]



我记得我们公司这样来写的,大于1年前的数据自动来删除,具体不知道怎么来实现的
[解决办法]
做个游标不久可以了吗,读所有的表,并且表中有字段sDate(假如你的时间字段为他)

select b.name as tblname,a.name as fldname syscolumns a ,sysobjects b
where a.id=b.id and b.xtype='u' and a.name='sDate'

[解决办法]
/************************************************************/
/*功能:批量删除表*/
/*定义游标*/
/************************************************************/
DECLARE @TABLENAME VARCHAR(50),@SQL1 VARCHAR(500)
DECLARE Cur_DropTable CURSOR FOR
SELECT name
FROM sysobjects
WHERE Upper(Type) = 'U' and name like 'tmp%' or name like 'zhx#%'
ORDER BY name

OPEN Cur_DropTable

FETCH NEXT FROM Cur_DropTable
INTO @TABLENAME
/*循环执行*/
WHILE @@FETCH_STATUS = 0
BEGIN
SET @SQL1 = ' drop TABLE ' + @TABLENAME
EXECUTE(@SQL1)
PRINT '表:'+ @TABLENAME + '删除成功......'
FETCH NEXT FROM Cur_DropTable
INTO @TABLENAME
END

CLOSE Cur_DropTable
DEALLOCATE Cur_DropTable
GO


lz先看看,有些要改一下,这个是删除一些有规律的表。


[解决办法]
写批处理吧,从sysobjects 获取所需要的表,然后拼sql语句执行

读书人网 >SQL Server

热点推荐