2014-06-11 92 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中的信息。
  • 您已将数据导出到平面文件进行归档。
  • 如果出现任何问题,您可以备份数据库以备回滚。

并截断或删除多余的数据。