我有一個Sql Server 2005數據庫,其中一些數據將每天從外部系統(Oracle)中刷新。特別是幾個表格將每天加載,我需要安排一個作業才能在最後一個表格刷新後啓動。我怎樣才能做到這一點?我應該使用一個表來存儲有關數據加載的特定信息,並定期從中讀取數據,作爲sql作業的第一步?謝謝!由數據加載觸發的日程安排sql作業
0
A
回答
0
外部數據庫所做的最後一件事是更新當前運行。當你的工作完成後,它會設置上次運行=當前運行。當你的工作開始時(檢查狀態,如果兩者沒有不同,請嘗試在X週期內完成;然後失敗,如果不同,那麼你的工作就會運行)
0
你需要知道外部系統完成更新數據的機制。
猜猜它是在外部系統中插入或更新一些紀錄由外部系統通知更新的結束SQL Server中的某些表(SYNC_TBL例如)
如果您需要:
- 更新完成後立即開始工作 - 將tr igger在SYNC_TBL表上執行作業,使用sp_start_job。更新完成後
- 開始你的工作了一段時間 - 計劃作業運行每隔15分鐘,而在第一步檢查SYNC_TBL,看看你的作業是否應該繼續或取消
請注意,您需要有另一個檢查在外部系統方面:更新數據可能不應該重新開始,直到作業完成其執行。您可以使用SYNC_TBL中的列已處理位來標記數據是否由您的作業處理。
+0
沒有必要在更新完成的那一刻開始工作,幾分鐘後就可以了 - 但是,因爲作業運行時間不會超過5-6小時,所以不會需要任何額外的檢查 - 最重要的是,在所有記錄被刪除並重新插入新記錄後,作業將開始 –
相關問題
- 1. Laravel取得日程安排作業
- 2. 如何:安排作業(存儲過程/觸發器)
- 3. 使用自定義觸發器和參數安排作業
- 4. 根據特定日期安排數據庫作業
- 5. 安排Azure數據工廠中的U-SQL作業
- 6. 根據參數安排作業?
- 7. 延遲排隊的作業立即通過數據庫驅動程序觸發
- 8. 在Oozie中將作業安排爲文件觸發器
- 9. 在gitlab-ci中安排或觸發作業
- 10. WPF觸發由祖業
- 11. 作業數據添加到觸發器沒有傳遞到作業在石英
- 12. 安排Oracle作業
- 13. SQL *加載程序:無法加載數據與日期列
- 14. 觸發每個新的數據加載
- 15. 從另一個作業觸發SQL Server作業
- 16. mysql日程安排碰撞數據
- 17. SQL作業的理由193
- 18. Quarz日程安排作業拋出一些錯誤
- 19. 作業的自動觸發
- 20. 在後臺作業後觸發重新加載頁面
- 21. Quartz:如何使用org.quartz.plugins.xml.XMLSchedulingDataProcessorPlugin重新加載作業和觸發器?
- 22. 安排在集羣中每個節點上執行的作業的觸發器
- 23. 從VB.NET應用程序中觸發SQL作業
- 24. Quartz.Net(2.2.3)安排新作業
- 25. 安排Spark Streaming作業
- 26. 如何在AS400中創建由SQL觸發器觸發的數據隊列?
- 27. 允許按日期安排作業的任何作業隊列系統?
- 28. SQL Server日程安排重置
- 29. 加入戰隊,城市和日程安排表中的SQL
- 30. Jenkins - 觸發預定作業
你是什麼意思「外部數據庫沒有更新當前運行」 - 我應該問他們寫什麼地方或這是一個SQL對象的屬性? –
您需要有人以他們的方式通知您工作完成。我建議,因爲他們已經更新了幾個表格;讓他們在您選擇的表格中插入/更新字段/列以指示工作完成;或者他們必須有工作完成的記錄;你可以進入該系統並獲取該指標。不,這不是一個財產。 – xQbert
是的,我認爲工作完成插入是檢查外部工作狀態的最簡單和有效的方式 - 謝謝 –