الأربعاء، 26 مارس 2014

أين يحفظ محتوى قوائم الشيربوينت ؟


على الرغم من ان  مايكروسفت لا تنصح ابدا بتشغيل استعلامات SQL بشكل مباشر على قواعد بيانات الشيربوينت لان ذلك قد يؤثر  على اداء قواعد البيانات باعتبار انها مهيئة لتشغيل وتحسن اداء استعلامات الشيربوينت الافتراضية  , الا ان الحاجة قد تدعو احيانا المبرمج او مدير منصة الشيربوينت ان يستعرض محتوى قائمة من قوائم الشيربوينت او ان يعدل عليها.
لذلك فان قوائم الشيربوينت او SharePoint Lists  في جدول dbo.AllLists ضمن قاعدة بينات المحتوى WSS_Content.

يكون شكل الجدول في SQL Server كالتالي :


كما نلاحظ من خلال الصورة السابقة ان لكل قائمة معرف خاص بها وهو tp_ID .
وهو الذي نشاهده دائما في رابط الصفحة التي تعرض محتوى القائمة في الشيربوينت و الذي يشبه الرابط التالي

Server_Name/Site_Name/_layouts/ListEdit.aspx?List={c5de9ed6-7cee-4d6b-bef3-ff537af2aa99}

لتكون الشاشة مشابهة لما يلي:





للاطلاع على محتوى القائمة من خلال SQL Server قم باستخدام الاستعلام التالي مع وضع معرف القائمة التي تريد عرضها :

SELECT    *
FROM       [WSS_Content].[dbo].[UserData]
WHERE     tp_ListId = 'c1844df0-ef88-4d61-a2f6-fe645bb80e4d'

نتيجة الاستعلام ستكون كالتالي



بالضغط على الرابط المشار اليه في الصورة اعلاه ستلاحظ ان ملف XML سيفتح ليعرض لك محتوى العنصر ListItem :





هناك تعليقان (2):

Hassan IBN ZBIBA يقول...

طريقة مفيدة للتعديل في القوائم في حال وقوع مشكل في الموقع، هل يمكن الاستفادة من هذه الطريقة للتأكد من أن الصور تسجّل في
Remote BLOB Storage
و لا تسجّل في قواعد البيانات ؟

Unknown يقول...

نعم من خلال التاكد من جدول
allDocs
حيث يفترض ان تكون هناك قيمة في خانة
RBSID
التي في المصفوفة الخاصة بالملف المرفوع
بدلا من ان تكون
Null
شكرا على المداخلة