0

列の値が現在の日付と一致したときにSQLデータベースの行を削除したい。SQL ServerManagementStudioを使用してデータを削除するためのスケジュールされたジョブを作成しました。ここのビデオに示されている手順に従いました 。スクリプトのタイプはT-SQLであり、指定したコマンドは次のとおりです。

Delete from NewDB.dbo.Datetabel where Date=getDate();
COMMIT

この仕事を毎日スケジュールしたいと思います。しかし今、テストの目的で、私は時間単位で与えました。しかし、この仕事は失敗しました。

エラーの詳細はどこで入手できますか。私はsql2008r2に取り組んでいます

失敗の理由は何ですか?編集済み:コードが次のように変更されると、ジョブは成功します。

BEGIN TRAN 
Delete from NewDB.dbo.Datetabel where Date=getDate();
COMMIT;

ただし、データは表から削除されません。今何が問題になる可能性がありますか?

前もって感謝します。

4

2 に答える 2

0
BEGIN TRAN 
Delete from NewDB.dbo.Datetabel 
WHERE convert(varchar(10), getdate(), 111) = convert(varchar(10), Date, 111)
COMMIT
于 2012-10-30T13:36:41.647 に答える
0

Ozren が提案したように、エラーを削除するために「BEGIN TRAN」を追加しました。およびコードで正常に動作します:

BEGIN TRAN 
Delete from NewDB.dbo.Datetabel where DATEDIFF(day, Date, GETDATE()) = 0
COMMIT;
于 2012-10-31T06:09:53.513 に答える