如何在SQLServer中使用sharepoint列表作为视图

时间:2016-01-24 11:24:28

标签: sql-server sharepoint

我有一个sharepoint网站,我在上面创建一个列表。我想用SQLServer表加入此列表。我可以访问SQLServer中的Sharepoint DB,并在此DB中创建了一个新表。我的问题是我无法在Sharepoint DB中找到我的列表来加入这个新表。 我怎么能这样做。

2 个答案:

答案 0 :(得分:0)

即使只是为了阅读,您也不应该访问SharePoint 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中,数据库模型已更改,列表数据现在以XML格式存储在tp_ColumnSet列的AllUserData表中。

答案 1 :(得分:0)

我终于解决了我的问题,并分享它来帮助你。在sql server中有一个名为WSS_Content的DB,您可以找到dbo.AllUserData表。列出SharePoint中的数据,保存在此表中:

image of DB name

如果您从此表中选择数据,则可以看到一个名称为[tp_ColumnSet]的列,其中包含数据。

您必须找出哪个列包含您的数据,最后通过此列的名称创建一个视图,如下所示:

SELECT    ntext2 AS Url, nvarchar1 AS Title, nvarchar5 AS FileName
FROM         dbo.AllUserData