存储过程以删除超过N天的记录

Dav*_*vid 3 sql t-sql sql-server sql-server-2005

我想创建一个两个存储过程,将从stgging数据库中删除超过N天的记录.

两个存储过程都会调用一个包来清理早于N天的数据.

存储过程A将从表中删除记录并且A.Fullimport存储过程B将从表中删除记录B.weeklyimport.

相同的存储过程将从表x和表Y中没有记录的错误表中删除所有记录.

两个存储过程都将接受输入变量@Cleanupdays.

mar*_*c_s 6

基本上,你必须写下这样的东西:

CREATE PROCEDURE dbo.CleanupTableA (@CleanupDays INT)
AS BEGIN  
   DELETE FROM A.Fullimport
   WHERE DATEDIFF(DAY, SomeDateField, GETDATE()) > @CleanupDays
END
Run Code Online (Sandbox Code Playgroud)

或类似的东西 - 没有确切的表结构,很难让这完全正确.....

DATEDIFF功能可以为您提供不同单位的两个日期之间的差异 - 例如以天为单位,您可以根据需要(也可以是周,月,年等).您基本上要做的就是删除所有具有DATEDIFF到今天的日期的行,该日期大于@CleanupDays传递给存储过程的值.

我不太明白你对错误表的意思......你可能需要澄清一下......