【问题标题】:Sharepoint: SQL to find all documents created/edited by a userSharepoint:用于查找用户创建/编辑的所有文档的 SQL
【发布时间】:2009-07-23 01:49:01
【问题描述】:

我正在寻找一个可以在 Sharepoint 2003 上运行的查询,以显示给定用户 ID 创建/访问的所有文档。

我找到了包含文档 (Docs) 的表格和用户表格 (UserInfo、UserData) 但是两者之间的关系似乎有点奇怪——我们的 userdata 表中有 99,000 条记录,而 userinfo 中有 12,000 条记录——我们有 400 个用户!

我想我希望与具有 400 条记录的用户表建立简单的一对多关系并将其连接到文档表,但我认为情况并非如此。

任何帮助将不胜感激。

编辑: 谢谢比约恩, 我已将该查询翻译回 Sharepoint 2003 结构:

select 
d.* from 
userinfo u join userdata d 
on u.tp_siteid = d.tp_siteid  
and 
u.tp_id = d.tp_author 
where
u.tp_login = 'userid' 
and
d.tp_iscurrent = 1

这为我提供了一个 siteid/listid/tp_id 的列表,我必须看看是否可以将它们追溯到文件名/路径。 全部:任何额外的帮助仍然很感激!

【问题讨论】:

    标签: sharepoint sharepoint-2003


    【解决方案1】:

    我从未查看过 SharePoint 2003 中的数据库,但在 2007 年,UserInfo 已连接到站点,这意味着每个用户在 UserInfo 中对于每个网站集(或等效的 2003 概念)都有一行。因此,要确定用户是什么,您需要站点 ID 和该站点内的用户 ID。在 2007 年,我会以这样的方式开始:

    select d.* from userinfo u 
    join alluserdata d on u.tp_siteid = d.tp_siteid 
    and u.tp_id = d.tp_author 
    where u.tp_login = '[username]'
    and d.tp_iscurrentversion = 1
    

    更新:正如其他人在这里写的,不建议直接进入 SharePoint 数据库,但我会说用你的头小心。更新是全大写的禁忌,但选择取决于上下文。

    【讨论】:

      【解决方案2】:

      不要直接查询 SHAREPOINT 数据库!

      我想知道我是否说得足够清楚? :)

      您确实需要查看 C# 中可用的对象模型,您需要获取 SiteCollection 的 SPSite 实例,然后遍历属于 SPSite 和 SPWeb 对象的 SPList 实例。

      一旦您拥有 SPList 对象,您将需要使用过滤您想要的用户的查询来调用 GetListItems。

      这是支持你做你想做的事情的方式。

      您永远不应该直接访问数据库,因为 SharePoint 根本不是为此而设计的,并且无法保证(实际上,有一个特定的警告)数据库的结构在版本和升级之间是相同的,并且此外,当内容分布在场中的多个内容数据库中时,无法保证在一个内容数据库上运行的查询将在另一个内容数据库上执行您期望的结果。

      当您查看对象模型进行迭代时,还请注意您将需要 dispose() 您创建的 SPSite 和 SPWeb 对象。

      哦,是的,您可能有 400 个用户,但我敢打赌您有 30 个网站。该信息在每个站点的数据库中重复...数据库中有 30 x 400 = 12,000 个条目。

      【讨论】:

        【解决方案3】:

        如果您打算在 Sharepoint 中使用该查询,您应该知道在内容数据库上创建视图或直接对数据库进行查询似乎是一个很大的禁忌。一种解决方法可能是一些自定义代码,它遍历对象模型并将结果写入您自己的数据库。这可以是基于计时器的,也可以是基于事件触发器的。

        【讨论】:

          【解决方案4】:

          您真的不应该使用锁进行 SELECT,即在查询中添加 WITH (NOLOCK)。系统的某些部分对超时非常敏感,如果您开始引入系统未预料到的锁,您可能会看到系统崩溃。

          但实际上,您应该通过对象模型来执行此操作。使用 IronPython 之类的东西和 OM 的实验几乎是令人愉快的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-11-15
            • 1970-01-01
            • 2017-05-13
            • 1970-01-01
            相关资源
            最近更新 更多