转:http://blog.csdn.net/ma_jiang/article/details/6553392

在工作中接触了一些SharePoint的数据库中的一些表。在此做个总结。

一位高手告诉我了与Content Database相关的三个表:

AllUserData            
AllDocs               AllDocStreams

我就是从这三个表开始研究的。而且在研究中发现 AllLists 表也很重要,但遗憾的是没在msdn上找到对这个表的说明。

表中每列的含义我就不多说了,在msdn上都有。 我在此举几个例子来介绍一下这些表的使用。

1. 得到用户上传的文档的数目:

select count(*) as DocNumber from dbo.AllDocs

where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] in

(select [tp_ID] from dbo.AllLists where [tp_ServerTemplate] = 101 and [tp_ItemCount] > 0)

注:AllLists列表中记录着所有列表的信息,此处所说的列表指的是所有SPList对象。

2. 得到每个文档的平均大小:

--declare variables

declare @file_size int

set @file_size = 0

set @file_size = (select sum(Cast([Size] as bigint)) as DocSize from dbo.AllDocs

where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] in

(select [tp_ID] from dbo.AllLists where [tp_ServerTemplate] = 101 and [tp_ItemCount] > 0))

set @file_size = @file_size / 1024

print(@file_size);

注:[Size]字段是以Byte为单位的,所以要将其变为bigint类型。

3. 得到文档库中文档的格式及相应的数目:

select [ExtensionForFile], count(*) as FileCount from dbo.AllDocs

where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] in

(select [tp_ID] from dbo.AllLists where [tp_ServerTemplate] = 101 and [tp_ItemCount] > 0)


group by [ExtensionForFile] order by [FileCount] desc

1. 得到文档库的大小

dbo.Webs 记录了每个 SPWeb对象的 FullUrl和 Guid.

dbo.Sites 记录了每个 SPSite对象的 GUID,可以与 dbo.Webs、 dbo.AllDocs对象联合起来使用。

select [ListId] as [LibId], [tp_Title] as  [LibTitle],dbo.Webs.[FullUrl], (sum(Cast([Size] as bigint)) / (1024)) as [LibSize (KB)]


from dbo.AllDocs, dbo.AllLists, dbo.Webs

where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] = [tp_ID] and

[tp_ServerTemplate] in (101,109,111,113,114,115,116,119) and [tp_ItemCount] > 0 and dbo.AllDocs.[SiteId]=


(select dbo.Sites.[Id] from dbo.Sites, dbo.Webs

where dbo.Webs.[SiteId] = dbo.Sites.Id and dbo.Webs.[FullUrl] = '')

and dbo.AllDocs.[WebId] = dbo.Webs.[Id]

Group By [ListId], dbo.Webs.[FullUrl], [tp_Title] order by [LibSize (KB)] desc

注: 
dbo.Webs.[FullUrl]
列存储了每个
SPWeb
对象的
url
地址
(
例如:
Teams/Test0223PM0400)
,当此
SPWeb
对象是根站点的
web
对象时,此处值为空字符串。

2. 得到在某段时间内更新的文档数

--declare variables

declare @start_time datetime, @end_time datetime



--set UTC DateTime

set @start_time = cast('2010-12-27 08:08:33' as datetime)

set @end_time = cast('2010-12-28 02:35:21' as datetime)



select count(*) from dbo.AllDocs

where [ExtensionForFile] <> '' and [DoclibRowId] > 0 and [ListId] in

(select [tp_ID] from dbo.AllLists where [tp_ServerTemplate] = 101 and [tp_ItemCount] > 0)


and ([MetaInfoTimeLastModified] between @start_time and @end_time)

注:dbo.AllDocs
表中的

[TimeCreated], [TimeLastModified], [NextToLastTimeModified], [MetaInfoTimeLastModified],
以及

[TimeLastWritten]
列都使用
UTC
时间。

3.
得到最常使用的文档格式及数目

select [ExtensionForFile], count(*) as 'AttachmentCount' from AllDocs

where DoclibRowId is null and [DeleteTransactionId] = 0x and [Type] = 0

and [HasStream] = 1 and ListId in

(select tp_ID from dbo.AllLists where [tp_ServerTemplate] in (100,107,108,150,1100) and [tp_ItemCount] > 0)


group by [ExtensionForFile] order by [AttachmentCount] desc

注: [DeleteTransactionId] 指示该listitem是否已被删除,未删除则值应为0x。

[HasStream] 指示此item是否含有文件流,1表示含有。

[Type] 指示此文档的‘Document Store Type’, 0表示文件,1表示文件夹。

4. 从站点集的Url地址得到所在数据库的名字

此处需要用到SharePoint的配置数据库(默认名称为:SharePoint_Config
)

select dbo.objects.[name] from dbo.objects, dbo.sitemap

where dbo.objects.[ID] = dbo.sitemap.[databaseID] and dbo.sitemap.[path] = '/AK/StrategicIndustries'

注:dbo.objects.[name] –> 数据库的名称存在于此列。

dbo.sitemap.[path] –> 记录着站点集的路径。

对SharePoint 2007数据库中一些数据表的使用的更多相关文章

  1. 孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成

    孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天经过反复折腾,最终基本上算 ...

  2. 孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数

    孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目 ...

  3. 用java语言将数据库中的数据表转换为xml文件的通用程序(细化)

    转自:https://www.cnblogs.com/wudage/p/7650685.html 总是在网络上copy别人的源代码,今天我也贴出自己今天写的源码,相信这个程序会对大家在平时的工作中需要 ...

  4. 用C# ASP.net将数据库中的数据表导出到Excel中

    需要用到组件GridView和一个button即可. 给GridView添加一个数据源, 选择你想要的数据库中的表的字段,添加成功后GridView中就显示数据. 再添加一个button,双击控件添加 ...

  5. MySQL查询数据库中所有数据表的数据条数

    select table_name,table_rows from information_schema.tables where TABLE_SCHEMA = '数据库名称' order by ta ...

  6. 如何在Sqlserver2000查询分析器中,,在一个库中调用另一个数据库中的数据表

    同一服務器 use aa select * from pubs.dbo.jobs 不同服務器 select * from openrowset('sqloledb','IP地址';'sa';'密碼', ...

  7. ThinkPHP 学习笔记 ( 三 ) 数据库操作之数据表模型和基础模型 ( Model )

    //TP 恶补ing... 一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: publ ...

  8. ThinkPHP 数据库操作之数据表模型和基础模型 ( Model )

    一.定义数据表模型 1.模型映射 要测试数据库是否正常连接,最直接的办法就是在当前控制器中实例化数据表,然后使用 dump 函数输出,查看数据库的链接状态.代码: public function te ...

  9. 孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数

    孤荷凌寒自学python第四十九天继续研究跨不同类型数据库的通用数据表操作函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 不同类型 ...

随机推荐

  1. Unable to make the session state request to the session state server处理方法

    Server Error in '/' Application. Unable to make the session state request to the session state serve ...

  2. 鸟哥笔记:syslogd:记录日志文件的服务

    日志文件内容的一般格式 一般来说,系统产生的信息经过syslogd记录下来的数据中,每条信息均记录下面的几个重要数据: 事件发生的日期与时间: 发生此事的主机名: 启动此事件的服务名称(如 samba ...

  3. 获取input标签的所有属性

    1.用jquery$("input[name='btnAdd']").attr("value") 获取value属性值,其它属性换attr的参数就OK 例1: ...

  4. Aspose.word总结

    1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"<”和“>”就可以了,而是必须 ...

  5. Android Studio API 文档_下载与使用

    如何下载API 说明: 时间: 2016/7/9 根据百度经验步骤改编(百度经验), 但是比它更好, 亲测可用 1.1 下载API文档: 1.1.1 SDK Manager 1.1.2 1.1.3 ( ...

  6. JavaScript事件总结

    JavaScript 事件总结   本文总结自<JavaScript高级程序设计>以及自己平时的经验,针对较新浏览器以及 DOM3 级事件标准(2016年8月),对少部分内容作了更正,增加 ...

  7. stm32类型cl、vl、xl、ld、md、hd的含义

    - startup_stm32f10x_ld_vl.s: for STM32 Low density Value line devices - startup_stm32f10x_ld.s: for ...

  8. PHP与最丑的后台管理系统

    第二天阿Q到公司还是比较早,同事只有阿梅在,阿Q坐在椅子上旋转来旋转去,有点像个小孩子.公司有书柜,书柜上放了好几本很新的php的书,.net的书反倒比较少而且显得老旧.阿Q起身走过去拿了本php翻了 ...

  9. 如何避免远程循环执行SSH时,到第一条之后就退出

    RT 今天遇到的小问题,记录下来. 据说关键是加  < /dev/null 我也是看网上别人说的,测试成功. #!/bin/bash while read line do echo $line ...

  10. easyui源码翻译1.32--DateTimeBox(日期时间输入框)

    前言 扩展自$.fn.datebox.defaults,使用$.fn.datetimebox.defaults重写默认值对象.下载该插件翻译源码 和日期输入框类似,日期时间输入框允许用户选择日期和指定 ...