2013-09-25 50 views
6

有誰知道如何使用基於特定sharepoint用戶的sql查詢獲取Sharepoint列表數據。如何查詢Sharepoint列表數據?

+0

在哪種語言?你的意思是直接向SQL Server提供SQL查詢嗎?或者你是否想用JavaScript中的SQL語法查詢Sharepoint列表?對於最後一個選項(帶JavaScript的SQL語法),請看http://aymkdn.github.io/SharepointPlus/symbols/%24SP%28%29.list.html#.get – AymKdn

回答

4

不能使用不應該真的使用 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

+2

要擴展Velin的答案,您必須將SharePoint視爲黑匣子。不僅模式是非常奇怪的(在關係數據庫中安裝文檔數據庫不是很自然也不簡單),但是微軟說這個模式不是固定的,並且最終可能隨新版本而改變。 –

+1

這很棒,除了CAML(SPQuery)對於查詢語言來說是一個相當可憐的藉口,除非你想要一個簡單的select語句而沒有聚合,獨特或TOP功能。 – JohnFx

+1

有許多情況下,您可能需要這樣做,或者因爲您沒有回答問題的原因而需要它,這是如何在使用SQL語句的SQL Server中執行此操作我會爲您投票,但我沒有足夠的點。 –

3

只要是SharePoint 2010的它還是比較容易從SQL拉,只要你有列表ID GUID

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

請注意,您不需要dbo.Lists加入此處(否則您最終需要執行l。*) – Daniel

+0

非常正確,在此查詢中不需要列表表格,我已對其進行了更改 –

+0

如何處理數據溢出和包裝行? – scuba88