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?
10
A
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
Będziesz musiał utworzyć SQL Agent Job, aby zaplanować zadanie do okresowego uruchamiania. Jeśli chcesz utworzyć zadanie za pomocą T-SQL, zapoznaj się z How to: Create a SQL Server Agent Job (Transact-SQL).
Jaki jest cel w 'N = N '...'' – xyz
@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) –