Войти

Показать полную графическую версию : Скрипт удаления устаревших записей из базы.


HuppeR
05-10-2011, 13:42
День добрый.
Подскажите, нужен скрипт для регулярного удаления устаревших записей из sql базы. Например удалять все записи старше месяца. Или какими методами можно это реализовать.
sql server 2005, база isa server.
Cпасибо.

zero55
05-10-2011, 21:11
примерно так.

создаете задание для SQL агента

DECLARE @DELETEDATE AS VARCHAR(255)
DECLARE @CURRENT AS DATETIME
SELECT @CURRENT = GETDATE()
SELECT @DELETEDATE = CAST(DATEPART(mm,@CURRENT) AS VARCHAR(2)) + '-' + CAST(DATEPART(dd,@CURRENT) AS VARCHAR(2)) + '-' + CAST(DATEPART(yy,@CURRENT) AS VARCHAR(4))

SELECT @DELETEDATE = DATEADD(dd, -45,@DELETEDATE)

DELETE FROM FirewallLog WHERE logtime < @DELETEDATE

Delirium
06-10-2011, 01:03
zero55, для этого можно использовать встроенную функцию DATEDIFF, указав в качестве первого параметра сегодняшнюю дату через GetDate(), а вторую - количество дней в минусе.
Либо просто where logtime <Getdate() - 30.




© OSzone.net 2001-2012