2016-05-19 7 views
0

ステートメントテーブル(dbo.tblImportBCCDataStaging)のレコードをステージングテーブルで費やされた時間に基づいてステージングテーブル(dbo.tblImportBCCDataStaging)から実動テーブル(dbo.tblImportBCCData)に移動するには、 )、およびジョブが本番表に存在しない場合。これまでのところ、insert文は機能しますが、後で挿入されたレコードを削除するにはどうすればよいですか?SqlのInsert Intoステートメントの後にレコードを削除する

INSERT INTO dbo.tblImportBCCData (JobNo, Zip, Country, Copies, AWB, DelvCode, OPSCode) 
SELECT  JobNo, Zip, Country, Copies, AWB, DelvCode, OPSCode 
FROM   dbo.tblImportBCCDataStaging AS t 
WHERE  (NOT EXISTS 
         (SELECT  JobNo 
         FROM   dbo.tblImportBCCData 
         WHERE  (JobNo = t.JobNo))) 
GROUP BY JobNo, Zip, Country, Copies, AWB, DelvCode, OPSCode, DateStamp 
HAVING  (DATEDIFF(mi, MIN(DateStamp), GETDATE()) > 10); 
+0

ここで、本番環境に存在するステージングから削除することはできませんか? – CactusCake

答えて

0

これは一時テーブルで行うことができますが、次のようにします。あなたのクエリに基づいて、JobNoがあなたの一意な識別子であり、おそらくインデックスを持っているようです。その場合:

Delete T 
From dbo.tblImportBCCDataStaging T 
Join dbo.tblImportBCCData P On P.JobNo = T.JobNo 
+0

大変ありがとうございます! – JenifferC

関連する問題