2013-03-13 9 views
10

Chcę utworzyć zadanie, które usuwa rekordy z bazy danych po upływie określonego czasu. Na przykład mam pole w tabeli aktualności Time Stamp i każdego miesiąca zapytanie SQL działa jak zaplanowane zadanie w mojej bazie danych i usuwa wiadomości, w których znacznik czasu ma dwa miesiące. Generalnie chcę usunąć wiadomości 2 miesiące temu i starsze, aby mój stół nie stał się dużym stołem. Jak mogę to zrobić?Jak utworzyć zaplanowane zadanie na serwerze SQL 2008 za pośrednictwem T-SQL?

Odpowiedz

13

zalecana create a job w SQL Poniżej próbka T-SQL dla utworzyć zadanie agenta SQL

USE msdb ; 
GO 
EXEC dbo.sp_add_job 
    @job_name = N'Weekly Sales Data Backup' ; 
GO 
EXEC sp_add_jobstep 
    @job_name = N'Weekly Sales Data Backup', 
    @step_name = N'Set database to read only', 
    @subsystem = N'TSQL', 
    @command = N'ALTER DATABASE SALES SET READ_ONLY', 
    @retry_attempts = 5, 
    @retry_interval = 5 ; 
GO 
EXEC dbo.sp_add_schedule 
    @schedule_name = N'RunOnce', 
    @freq_type = 1, 
    @active_start_time = 233000 ; 
USE msdb ; 
GO 
EXEC sp_attach_schedule 
    @job_name = N'Weekly Sales Data Backup', 
    @schedule_name = N'RunOnce'; 
GO 
EXEC dbo.sp_add_jobserver 
    @job_name = N'Weekly Sales Data Backup'; 
GO 
+0

Jaki jest cel w 'N = N '...'' – xyz

+0

@xyz N przed wartością tekstową wskazuje, że następujący tekst jest typu nvarchar zamiast varchar. Dla różnicy między tymi dwoma typami danych, zobacz tutaj: [link] (http://stackoverflow.com/questions/144283/what-is-the-difference-between-varchar-and-nvarchar) –

Powiązane problemy