2014-06-11 116 views
0

我需要刪除BizForm數據的一個子集(超過1,000條記錄)。批量刪除BizForm數據

我看到有a DevNet article從2011年12月開始,表示批量刪除商業表格是不可能的,沒有做一些編碼。這對我來說是一個問題,因爲我要做的任何編碼都需要將代碼發佈到生產環境,這需要很長時間。

在回答我原來DevNet後,一個有趣的解決方案提出:

還有其他選擇......

創建一個新的文檔類型,這是一個佔位符,並且不包含任何數據。創建一個自定義查詢以簡化「TRUNCATE

」。在頁面上放置查詢中繼器webpart。 **非常重要**首先設置visibility = false(取消選中框),以便查詢不會運行。接下來選擇您剛創建的查詢。在頁面上添加另一個webpart(可編輯文本)。將它作爲鏈接指向最後一個URL參數的同一頁面,例如/ my-page /?isdelete = 1。

現在回到之前的webpart(查詢中繼器),並在可見性屬性上設置一個宏。使用這個宏:

{% if (QueryString.GetValue("isdelete") == "1") { return true; // run the code } else { return false; // don't run code } %}

這應該讓你沒有任何形式的背後編寫代碼尋找什麼。您可能希望確保該頁面上存在某種安全性。

它似乎只是寫一個自定義的SQL查詢,並將其放入查詢中繼器webpart,然後執行這是一個可能的解決方案。

但是,如果是這樣的話,是否有任何理由不直接針對我感興趣的BizForm表的數據庫執行SQL腳本?

這種方法可能會產生任何依賴性或完整性問題嗎?

回答

1

根據我對Bizform的經驗,在數據庫上執行截斷操作一直是清空bizform表的最快方法。 在針對數據庫運行腳本之前,請確保以下內容:

  • 其他相關表不存在外鍵約束。
  • 否自定義窗體控件依賴於Bizform中的信息。
  • 您已將數據導出到平面文件進行歸檔。
  • 如果出現任何問題,您可以備份數據庫以備回滾。

並截斷或刪除多餘的數據。