2013-09-25 51 views
6

Có ai biết cách lấy dữ liệu Danh sách Sharepoint bằng truy vấn sql dựa trên người dùng cụ thể hơn không.Làm thế nào để truy vấn dữ liệu danh sách chia sẻ?

+0

Trong đó ngôn ngữ? Bạn có nghĩa là một truy vấn SQL SQL Server trực tiếp? Hoặc bạn có nghĩa là để truy vấn một danh sách Sharepoint với một cú pháp SQL từ JavaScript? Đối với tùy chọn cuối cùng này (cú pháp SQL có JavaScript), hãy xem http://aymkdn.github.io/SharepointPlus/symbols/%24SP%28%29.list.html#.get – AymKdn

Trả lời

4

Bạn không thể sử dụngkhông được thực sự sử dụng SQL để lấy dữ liệu từ danh sách SharePoint. Cách phổ biến nhất để thực hiện điều này là giải pháp tùy chỉnh nơi bạn có thể sử dụng CAML (SPQuery) để truy xuất dữ liệu cho các mục danh sách (ví dụ như được tạo bởi người dùng) http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.aspx hoặc người nào khác bạn có thể phơi bày các dịch vụ SharePoint để có cùng kết quả http://msdn.microsoft.com/en-us/library/sharepoint/jj164060.aspx.

+2

Để mở rộng câu trả lời của Velin, bạn phải xem SharePoint là hộp đen. Không chỉ lược đồ rất lạ (việc lắp một cơ sở dữ liệu tài liệu trong một cơ sở dữ liệu quan hệ không phải là rất tự nhiên cũng không đơn giản), nhưng Microsoft nói rằng lược đồ không cố định và có thể thay đổi cùng với các bản phát hành mới. –

+1

Thật tuyệt vời ngoại trừ CAML (SPQuery) là một lý do khá đáng thương cho một ngôn ngữ truy vấn trừ khi bạn muốn một câu lệnh chọn đơn giản không có tính năng tổng hợp, khác biệt hoặc TOP. – JohnFx

+1

Có rất nhiều kịch bản mà bạn có thể phải làm điều này hoặc nó là cần thiết cho bất cứ lý do gì bạn chưa trả lời câu hỏi, đó là làm thế nào để làm điều đó trong SQL Server bằng cách sử dụng câu lệnh SQL tôi sẽ bỏ phiếu bạn xuống nhưng tôi không có đủ điểm. –

3

Chừng nào nó là SharePoint 2010 nó vẫn còn tương đối dễ dàng để kéo từ SQL miễn là bạn có danh sách id GUID

Xem 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

Lưu ý bạn không cần dbo.Lists tham gia ở đây (hoặc người nào khác bạn muốn làm l. * Cuối cùng?) – Daniel

+0

Khá chính xác, bạn không cần bảng Danh sách trong truy vấn này, tôi đã thực hiện các thay đổi –

+0

Làm thế nào về khi dữ liệu bị tràn và có các hàng được bao bọc? – scuba88