博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高效删除 ListItem
阅读量:6036 次
发布时间:2019-06-20

本文共 2944 字,大约阅读时间需要 9 分钟。

The most efficient way to a lot of transaction in SharePoint is using of method. For deleting operations there are . Code exaple from that post:
 
 
    
//
 We prepare a String.Format with a String.Format, this is why we have a {
{0}} 
   
string command = String.Format(
"
<Method><SetList Scope=\"Request\">{0}</SetList><SetVar Name=\"ID\">{
{0}}</SetVar><SetVar Name=\"Cmd\">Delete</SetVar><SetVar Name=\"owsfileref\">{
{1}}</SetVar></Method>
", list.ID);
   
//
 We get everything but we limit the result to 100 rows 
   SPQuery q = 
new SPQuery();
   q.RowLimit = 
100;
   
//
 While there's something left 
   
while (list.ItemCount > 
0)
   {
    
//
 We get the results 
    SPListItemCollection coll = list.GetItems(q);
    StringBuilder sbDelete = 
new StringBuilder();
    sbDelete.Append(
"
<?xml version=\"1.0\" encoding=\"UTF-8\"?><Batch>
");
    Guid[] ids = 
new Guid[coll.Count];
    
for (
int i=
0;i<coll.Count;i++)
    {
     SPListItem item = coll[i];
     sbDelete.Append(
string.Format(command, item.ID.ToString(), item.File.ServerRelativeUrl));
     ids[i] = item.UniqueId;
    }
    sbDelete.Append(
"
</Batch>
");
    
//
 We execute it 
    web.ProcessBatchData(sbDelete.ToString());
    
//
We remove items from recyclebin
    web.RecycleBin.Delete(ids);
    list.Update();
   }
  }
 
 
[System.Reflection.Assembly]::Load(
"
Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c
")
[System.Reflection.Assembly]::Load(
"
Microsoft.SharePoint.Portal, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c
")
[System.Reflection.Assembly]::Load(
"
Microsoft.SharePoint.Publishing, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c
")
[System.Reflection.Assembly]::Load(
"
System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
")
write-host 
# Enter your configuration here
$siteUrl = 
"
http://mysharepointsite.example.com/
"
$listName = 
"
Name of my list
"
$batchSize = 
1000
write-host 
"
Opening web at $siteUrl...
"
$site = 
new-
object Microsoft.SharePoint.SPSite($siteUrl)
$web = $site.OpenWeb()
write-host 
"
Web is: $($web.Title)
"
$list = $web.Lists[$listName];
write-host 
"
List is: $($list.Title)
"
while ($list.ItemCount -gt 
0)
{
  write-host 
"
Item count: $($list.ItemCount)
"
  $batch = 
"
<?xml version=`
"
1.0`
"
 encoding=`
"UTF-
8`
"
?><Batch>
"
  $i = 
0
  
foreach ($item 
in $list.Items)
  {
    $i++
    write-host 
"
`rProcessing ID: $($item.ID) ($i of $batchSize)
" -nonewline
    $batch += 
"
<Method><SetList Scope=`
"Request`
"
>$($list.ID)</SetList><SetVar Name=`
"ID`
"
>$($item.ID)</SetVar><SetVar Name=`
"Cmd`
"
>Delete</SetVar><SetVar Name=`
"owsfileref`
"
>$($item.File.ServerRelativeUrl)</SetVar></Method>
"
    
if ($i -ge $batchSize) { 
break }
  }
  $batch += 
"
</Batch>
"
  write-host
  write-host 
"
Sending batch...
"
  # We execute it 
  $result = $web.ProcessBatchData($batch)
  write-host 
"
Emptying Recycle Bin...
"
  # We remove items 
from recyclebin
  $web.RecycleBin.DeleteAll()
  write-host
  $list.Update()
}
write-host 
"
Done.
"

转载于:https://www.cnblogs.com/52life/p/3298711.html

你可能感兴趣的文章
我的友情链接
查看>>
新的开始~~~
查看>>
字符串的扩展
查看>>
存储过程中调用webservice
查看>>
神奇语言 python 初识函数
查看>>
Windows安装Composer出现【Composer Security Warning】警告
查看>>
四 指针与数组 五 函数
查看>>
硬盘空间满了
查看>>
dutacm.club Water Problem(矩阵快速幂)
查看>>
深入JVM内核--GC算法和种类
查看>>
iOS的AssetsLibrary框架访问所有相片
查看>>
读书笔记三
查看>>
数论 - 最小乘法逆元
查看>>
企业架构研究总结(22)——TOGAF架构开发方法(ADM)之信息系统架构阶段
查看>>
接口测试(三)--HTTP协议简介
查看>>
周志华《机器学习》课后答案——第4章.决策树
查看>>
frameset分帧问题
查看>>
特殊样式:ime-mode禁汉字,tabindex焦点
查看>>
linux
查看>>
Layout父元素点击不到的解决办法
查看>>