1. 程式人生 > >sqlserver資料庫某表定期刪除功能實現

sqlserver資料庫某表定期刪除功能實現



新建資料庫BackDel,建立表Test(id,tm,v),型別隨意。先建立任務每5分鐘插入一條資料,再建立刪除任務。

sqlserver 啟動代理服務,開啟管理其介面,新建作業,常規裡面輸入名稱,選擇類別,輸入說明


轉到步驟中,設定執行什麼任務,新建步驟,步驟常規裡面名稱,選擇T-Sql型別,選擇資料庫,在命令中輸入sql語句

declare @tm datetime --定義tm
select @tm=getdate() --查詢時間
insert into Test values(@tm,1) --插入語句//@tm應該為values值

注:

自己在工作計劃命令中測試的sql程式碼

declare @ti datetime   //定義格式
--select @ti=getdate()
Select @ti=CONVERT(varchar(100), GETDATE(), 20)   //獲取系統時間為年月日時分秒毫秒,關於時間格式轉換本部落格裡有詳細的文章
insert into tttt values(@ti,1)

insert into Test values(1,1) --適用於表內兩列資料的插入,test代表表名字,(1,1)表示要插入的值

insert into Test(列1,列2,。。。。。) values(列1值,列2值,。。。。。) --指定列指定值,其他值null

轉到計劃中,計劃什麼時候執行,新建計劃,輸入名稱,選擇計劃型別為重複執行,執行間隔為1天,每天頻率為5分鐘插入一條資料,點選確定

每5分鐘插入一條資料的定時任務就建立,測試執行效果顯示成功

建立刪除任務,步驟同上面一樣,sql語句不同而已

declare @tm datetime
--select @tm=dateadd(month,-6,getdate())  //刪除當前日期6個月之前的資料
select @tm=dateadd(day,-1,getdate())     //刪除當前日期前一天的資料
delete from test where tm <= 1    //1相當於條件,只針對本例

delete from test where tm>=dateadd(month,-6,getdate())//刪除表中6個月之前的資料

最終建立的任務如下圖