批量删除BizForm数据

时间:2014-06-11 15:41:30

标签: sql kentico

我需要删除BizForm数据的子集(超过1,000条记录)。

我看到2011年12月有a DevNet article表示如果不进行某些编码,就无法批量删除商业表格。这对我来说是个问题,因为我要做的任何编码都需要将代码发布到生产中,这需要很长时间。

在对我原来的DevNet帖子的回答中,提出了一个有趣的解决方案:

  

有其他选择......

     

创建一个新的doc类型,即占位符,不包含任何数据。创建一个简单的自定义查询" TRUNCATE

     

&#34 ;.在页面上放置查询转发器webpart。   **非常重要**首先设置visibility = false(取消选中框),以便查询不会运行。接下来选择刚刚创建的查询。将另一个webpart(可编辑文本)添加到页面。使用最后的URL参数将其指向同一页面的链接,例如/ my-page /?isdelete = 1.

     

现在返回上一个webpart(查询转发器)并在visibility属性上设置一个宏。使用此宏:

     

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

     

这应该得到你正在寻找的东西,而没有任何代码背后的写作。您可能希望确保该页面上存在某种安全性。

似乎只是编写自定义SQL查询并将其放入查询转发器webpart中,然后执行该查询是一种可能的解决方案。

但是,如果是这样的话,我有什么理由不直接针对我感兴趣的BizForm表的数据库执行SQL脚本?

此方法可能导致任何依赖性或完整性问题吗?

1 个答案:

答案 0 :(得分:1)

根据我对Bizform的经验,对数据库执行截断是清空bizform表的最快方法。 在针对数据库运行脚本之前,请确保以下内容:

  • 其他相关表格不存在外键约束。
  • 否自定义表单控件依赖于Bizform中的信息。
  • 您已将数据导出到平面文件以进行存档。
  • 如果出现任何问题,您可以备份数据库,以便回滚。

截断或删除多余的数据。