2013-09-25 12 views
6

Qualcuno sa come recuperare i dati dell'elenco di SharePoint utilizzando la query sql basata sul particolare utente di sharepoint.Come interrogare i dati dell'elenco di SharePoint?

+0

In quale lingua? Intendi una query SQL direttamente su SQL Server ??? O intendi interrogare un elenco di Sharepoint con una sintassi SQL da JavaScript? Per questa ultima opzione (sintassi SQL con JavaScript), guarda http://aymkdn.github.io/SharepointPlus/symbols/%24SP%28%29.list.html#.get – AymKdn

risposta

4

non è possibile utilizzarenon dovrebbe utilizzare davvero SQL per ottenere dati dall'elenco di SharePoint. Il modo più comune per farlo è una soluzione personalizzata in cui è possibile utilizzare CAML (SPQuery) per recuperare i dati per gli elementi di elenco (creati dall'utente ad esempio) http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.aspx oppure è possibile esporre i servizi di SharePoint per ottenere gli stessi risultati http://msdn.microsoft.com/en-us/library/sharepoint/jj164060.aspx.

+2

Per estendere la risposta di Velin, devi considera SharePoint come blackbox. Non solo lo schema è molto strano (il montaggio di un database di documenti in un database relazionale non è molto naturale né semplice), ma Microsoft sta dicendo che lo schema non è fisso e potrebbe eventualmente cambiare con le nuove versioni. –

+1

Questo è fantastico eccetto CAML (SPQuery) è una scusa piuttosto pietosa per un linguaggio di query a meno che tu non voglia una semplice istruzione di selezione senza funzioni di aggregazione, distinte o TOP. – JohnFx

+1

Ci sono molti scenari in cui potresti dover fare questo o è necessario per qualsiasi ragione tu non abbia risposto alla domanda, che era come farlo in SQL Server usando SQL Statements ti voterei ma non ho abbastanza punti. –

3

Finché si tratta di SharePoint 2010 è ancora relativamente facile da tirare da SQL fino a quando si ha la GUID lista id

Vedi here

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}') 
+0

Nota che non hai bisogno dei dbo.Lists si uniscono qui (oppure vuoi fare l. * Alla fine?) – Daniel

+0

Abbastanza corretto, non hai bisogno della tabella Elenchi in questa query, ho apportato le modifiche –

+0

Che dire di quando i dati sono in overflow e ci sono righe spostate? – scuba88

Problemi correlati