web-dev-qa-db-fra.com

Comment interroger les données de la liste Sharepoint?

Est-ce que quelqu'un sait comment récupérer les données de la liste Sharepoint en utilisant une requête SQL basée sur l'utilisateur du point de partage particulier.

7
Santhosh

Vous ne peut pas utiliser ne devrait pas vraiment utiliser SQL pour obtenir des données à partir de la liste SharePoint. La solution la plus courante consiste à utiliser une solution personnalisée permettant d’utiliser CAML (SPQuery) pour extraire des données d’éléments de liste (créés par l’utilisateur, par exemple) http://msdn.Microsoft.com/en-us/library/Microsoft .sharepoint.spquery.aspx ou vous pouvez exposer les services SharePoint pour obtenir les mêmes résultats http://msdn.Microsoft.com/en-us/library/sharepoint/jj164060.aspx .

4
Velin Georgiev

Tant qu'il s'agit de SharePoint 2010, il est encore relativement facile d'extraire du code SQL tant que vous avez le GUID de la liste id

Voir ici

    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}')
3
Adrian Sullivan

Solution pour mon cas - affichez la liste 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'
0
Andrey Morozov