8

有谁知道如何使用基于特定共享点用户的 sql 查询来获取共享点列表数据。

4

4 回答 4

5

只要是 SharePoint 2010,只要您有列表 ID GUID,从 SQL 中提取仍然相对容易

这里

    SELECT
    ud.tp_ID
    , ud.tp_ListId
    , ud.tp_Author
    , ud.nvarchar1
    , ud.nvarchar2
    , ud.nvarchar3
    , ud.nvarchar4
    , ud.nvarchar5
    , ud.nvarchar6
    , ud.nvarchar7
    , ud.nvarchar8
    , ud.nvarchar9
    , ud.nvarchar10
    , ud.nvarchar11
    , ud.nvarchar12
    , ud.*
    FROM dbo.UserData ud
    WHERE (ud.tp_ListId =  '[{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}')
于 2013-10-29T13:35:40.040 回答
5

不能使用 不应该真正使用SQL 从 SharePoint 列表中获取数据。最常见的方法是自定义解决方案,您可以使用 CAML (SPQuery) 检索列表项的数据(例如由用户创建)http://msdn.microsoft.com/en-us/library/microsoft.sharepoint .spquery.aspx或者您可以公开 SharePoint 服务以获得相同的结果http://msdn.microsoft.com/en-us/library/sharepoint/jj164060.aspx

于 2013-09-27T13:12:12.987 回答
0

首先,您的 SP 列表将需要一个捕获用户帐户信息的字段。将 SQL 报表生成器与 SharePoint 列表数据连接一起使用,在报表上为@User. 将此设置为隐藏参数。将此参数的默认值设置为=Right(User!UserID,8):这将为您提供用户帐户信息的最后 8 个字符,然后您可以根据这些字符过滤数据集(您的帐户信息可能多于或少于 8 个,因此根据您的设置构建)。您需要在数据集或表本身上设置过滤器,以将列表中的字段与参数匹配。

于 2020-02-05T18:33:53.387 回答
0

我的案例的解决方案 - 显示 SP 列表

select l.tp_title
, n1.title.value('(text())[1]', 'nvarchar(32)') as Title
, n2.[status].value('(text())[1]', 'nvarchar(32)') as [Status]
, n3.[priority].value('(text())[1]', 'nvarchar(32)') as [Priority]
from Lists l
join UserData u on u.tp_ListId = l.tp_ID
cross apply tp_ColumnSet.nodes('/nvarchar1') AS n1(title)
cross apply tp_ColumnSet.nodes('/nvarchar3') AS n2([status])
cross apply tp_ColumnSet.nodes('/nvarchar4') AS n3([priority])
where l.tp_title = 'LIST NAME'
于 2018-06-05T13:59:41.867 回答