2013-03-13 6 views
10

一定の時間が経過した後にデータベースからレコードを削除するジョブを作成したいとします。たとえば、ニューステーブルTime Stampにフィールドがあり、毎月SQLクエリがデータベースに対してスケジュールされたジョブのように実行され、タイムスタンプが2か月前のニュースが削除されます。一般的に私は2カ月前とそれ以前のニュースを削除して、テーブルを大きなテーブルにしないようにしたいと思います。どうすればこれを達成できますか?T-SQL経由でSQL Server 2008でスケジュールされたジョブを作成するには?

答えて

13

あなたはSQL以下 でcreate a jobは= N 'におけるNの目的は何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

を経由してジョブを作成するためのサンプルのT-SQLである必要があります '...' '@xyz – xyz

+0

テキスト値の前のNは、次のテキストがvarcharではなくnvarchar型であることを示します。 これらの2つのデータ型の違いについては、 [link](http://stackoverflow.com/questions/144283/what-is-the-difference-between-varchar-and-nvarchar)を参照してください。 –

関連する問題