2016-01-24 36 views
-2

我有一個SharePoint站點,並且我在其上創建了一個列表。我想用SQLServer表來加入這個列表。我有權訪問SQLServer中的Sharepoint DB,並在此數據庫中創建了一個新表。我的問題是,我無法在Sharepoint DB中找到我的列表以加入此新表。 我該如何做到這一點。如何在SQLServer中使用SharePoint列表作爲視圖

+0

Microsoft不支持直接訪問Sharepoint數據庫,請閱讀本文[https://support.microsoft.com/zh-cn/kb/841057]以獲取更多信息。我的建議是編寫一個從sharepoint讀取並寫入SQL的SSIS或程序,並在那裏寫入連接查詢。 – Max

回答

0

即使僅用於閱讀,也不應訪問SharePoint DB。但是如果你想這樣做,那就沒有關於這個的文檔(沒有db模型)。在網上有一些關於此的帖子,如Where does SharePoint store list itemsHOW TO PULL SHAREPOINT LIST DATA FROM SQL SERVER

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.AllLists l 
INNER JOIN dbo.AllUserData ud ON l.tp_ID = ud.tp_ListId 
WHERE (ud.tp_ListId = ‘{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}’) 

在SP2013的DB模式已經改變,列出的數據現在存儲在列tp_ColumnSet的AllUserData表XML。

+0

謝謝,但WSS_Content中沒有名爲dbo.Lists和dbo.UserData的表。這些在哪裏? – mghj

+0

你有哪些SharePoint版本?在SP2013中,數據庫模型已更改,列表數據現在以XML格式存儲在列「tp_ColumnSet」的「AllUserData」表中。 – STORM

0

我終於解決了我的問題,並分享它來幫助你。在名爲WSS_Content的sql服務器中有一個數據庫,您可以找到dbo.AllUserData表。在SharePoint列表數據,保存在該表:

image of DB name

如果從該表中選擇數據,可以看到名稱的列:[tp_ColumnSet]有數據。

你必須找出列名有你的數據,並最終創建這個列名這樣的觀點:

選擇ntext2 AS地址,nvarchar1標題,nvarchar5 AS文件名 FROM dbo.AllUserData

相關問題