如何查询SharePoint中使用特定内容类型的所有列表?
我有以下CAML查询:如何查询SharePoint中使用特定内容类型的所有列表?,sharepoint,sharepoint-2007,caml,Sharepoint,Sharepoint 2007,Caml,我有以下CAML查询: <Where> <And> <Eq> <FieldRef Name='PublishToSM' /> <Value Type='Boolean'>True</Value> </Eq> <IsNull> <FieldRef Name
<Where>
<And>
<Eq>
<FieldRef Name='PublishToSM' />
<Value Type='Boolean'>True</Value>
</Eq>
<IsNull>
<FieldRef Name='SMUpdateDate' />
</IsNull>
</And>
</Where>
符合事实的
我只有一种使用这些字段的内容类型。当我对使用此内容类型的列表运行此查询时,一切正常。当我对一个不正确的列表运行它时,它抛出错误:一个或多个字段类型未正确安装。转到列表设置页面删除这些字段。
我想能够在网站集中搜索所有网站上的所有列表。这可以在不出错的情况下完成吗?使用SPSiteDataQuery,添加where子句以包含内容类型。i、 e:
<Where>
<And>
<Eq>
<FieldRef Name='ContentType' />
<Value Type='Text'>CONTENTTYPE NAME</Value>
</Eq>
<And>
<Eq>
<FieldRef Name='PublishToSM' />
<Value Type='Boolean'>True</Value>
</Eq>
<IsNull>
<FieldRef Name='SMUpdateDate' />
</IsNull>
</And>
</And>
</Where>
<BeginsWith>
<FieldRef Name='ContentTypeId' />
<Value Type='ContentTypeId'>CONTENTTYPE ID</Value>
</BeginsWith>
内容类型名称
符合事实的
内容类型ID
将
SPSiteDataQuery
的Scope
属性设置为SiteCollection。通过设置列表
属性,您还可以将搜索范围限制在例如文档库等。可以设置查看字段
属性以限制检索到的字段(即,代替项目字段上的等效选择*
)使用SPSiteDataQuery,添加where子句以包括内容类型。i、 e:
<Where>
<And>
<Eq>
<FieldRef Name='ContentType' />
<Value Type='Text'>CONTENTTYPE NAME</Value>
</Eq>
<And>
<Eq>
<FieldRef Name='PublishToSM' />
<Value Type='Boolean'>True</Value>
</Eq>
<IsNull>
<FieldRef Name='SMUpdateDate' />
</IsNull>
</And>
</And>
</Where>
<BeginsWith>
<FieldRef Name='ContentTypeId' />
<Value Type='ContentTypeId'>CONTENTTYPE ID</Value>
</BeginsWith>
内容类型名称
符合事实的
内容类型ID
将
SPSiteDataQuery
的Scope
属性设置为SiteCollection。通过设置列表
属性,您还可以将搜索限制为例如文档库等。可以设置查看字段
属性来限制检索的字段(即,代替对项目字段的选择*
)嗯,这似乎可以工作,但是在使用ListItem.Update
之前,我使用了我的方法在找到字段后更新它。如果切换到SPSiteDataQuery
,我能做到这一点吗?此外,我注意到它需要很长时间才能运行。这正常吗?它运行了大约40分钟,然后在我厌倦使用SPSiteDataQueryNot时给了我一个“服务器内存不足”的错误。它不应该需要很长时间,要更新需要包含在查询的ViewFields中的字段。您还可以尝试将ContentType子句更改为我在editHmm中输入的内容,这似乎可以工作,但是在使用ListItem.Update
之前,我使用了我的方法在找到字段后更新它。如果切换到SPSiteDataQuery
,我能做到这一点吗?此外,我注意到它需要很长时间才能运行。这正常吗?它运行了大约40分钟,然后在我厌倦使用SPSiteDataQueryNot时给我一个“服务器内存不足”错误。这不应该需要很长时间,要更新需要包含在查询的ViewFields中的字段,您还可以尝试将ContentType子句更改为我在编辑中输入的内容