السلام عليكم
ممكن شرح كيفية عمل قاعدة بيانات موزعة وكيفية ربط الجداول في قاعدتين بيانات مختلفتين
استخدام فجول بيسك 2010 و sql server
يرجى مساعدتي
مع الشكر والتقدير
السلام عليكم
ممكن شرح كيفية عمل قاعدة بيانات موزعة وكيفية ربط الجداول في قاعدتين بيانات مختلفتين
استخدام فجول بيسك 2010 و sql server
يرجى مساعدتي
مع الشكر والتقدير
انظر هذا الكود استعلام من قاعدتين بيانات مختلفتين
select main.nCode,main.sName,sub.sTel,subAddress from db_1.dbo.tableMainData as main inner join db_2.dbo.SubData as sub on main.nCode=sub.Id
سبحانه الله وبحمده سبحانه الله العظيم
if (You Love ArabTeam2000 ) MessageBox.Show("All ArabTeam2000 Love You"); else MessageBox.Show("go to your mama"); KARIMSOFT كتب:
انظر هذا الكود استعلام من قاعدتين بيانات مختلفتين
select main.nCode,main.sName,sub.sTel,subAddress from db_1.dbo.tableMainData as main inner join db_2.dbo.SubData as sub on main.nCode=sub.Id
مشكور استاذ على الرد بس ممكن شرح يوضح كيفية ربط السيرفرين يعني عن طريف الفجول بيسك اربط الجداول
مثلا لو كان عندي السيرفر الاول اسمة m1 والسيرفر الثاني m2
قاعدة بيانات السيرفر m1 اسمها db1 اسم الجدولT1 والحقول (ID, Name,Old)
قاعدة بيانات السيرفر m2 اسمها db2 اسم الجدولT2 والحقول (ID,adress_home,street)
وانا مشكور الك استاذ اذا ممكن اتجاوبني...
تم تعديل هذه المشاركة بواسطة mkyh86 في 8 سبتمبر 2013 في 19:07
الكود الذي بالعلي قاعدتي بيانات علي نفس الخادم ولكن مشكلتك تحل بالlinked servers
look this
http://sqlmag.com/sql-server/connecting-sql-server-and-oracle-using-linked-servers
http://www.sql-server-helper.com/error-messages/msg-117.aspx
سبحانه الله وبحمده سبحانه الله العظيم
if (You Love ArabTeam2000 ) MessageBox.Show("All ArabTeam2000 Love You"); else MessageBox.Show("go to your mama"); اشكرك اخي والله يجازيك الف خير... مشكور
سلامات غالي:
قواعد البيانات الموزعة تختلف أختلافا كثيرا عن قواعد البيانات العادية
ومعقدة
ويمكن لقواعد البيانات العادية ان تفي بالغرض للقيام بالاعمال الحسابية.....
سوف اقول لك ما اعرف حيث انني استعملتها مرتين فقط في عملي
ان استعمال قواعد البيانات الموزعة (Linked or embedded server) مفيده عندما تريد ان تعمل استعلام بين جدولين من نوعين مختلفين من database source مثل جدول موجود على sql server وجدول موجود في access او بين sql server و excel
تسنطيع استعمالها بالطبع بين اثنين sql server اذا اردت ذلك ولكني لم اعد استعملها نظرا لتعقيد عملها و تعقيد الاستعلام وايضا بطأها.
اولا لعمل Linked server افتح microsoft management studio
SERVER OBJECT << Linked Servers
right-click and add the linked server for the second server you have
How to Config Linked Servers in a Minute
عندما تنجح في ذلك سوف يظهر ال server الثاني وسوف تستطيع ان تشاهد الجداول
تستطيع ان تعمل استعلام بهذه الطريقة
select t1.name ,t1.old , t2.address, t2.street from [first_server_name].[first_db_name].[dbo].[table_1] t1 Left join [second_server_name].[second_db_name].[dbo].[table_2] t2 on t1.id = t2.id second_server_name is the name of LINKED SERVER you create
طريقتي المفضلة او نصيحتي اذا اردت رايي هو عدم استعمالها لسبب واحد وهو البطأ. اما لماذا هي بطيئة فانه عندما تعمل join بين جدول1 على server1 مع جدول2 علي server2 لتعمل ال join عليها ان تجلب كل السجلات من جدول2 server2 اولا ثم تعمل join ولو كانت السجلات كبيرة لنقل 1,000,000 سجل فانك ستجلبهم كلهم لاختيار سجل واحد بما يناسب شرط ال join
في الحالة العدية عندما تعمل استعلام يحتوي على على where فانك ستحصل على filter قبل سجل واحد
لذلك انا افضل ان اعمل استعلامان مختلفان لكل سيرفر لكل جدول وبذلك احصل على dt1 و dt2 في vb.net باستعمال ال where و ليس join وثم استعمل Linq on Datatable لاخراج النتيجة التي اربد
تم تعديل هذه المشاركة بواسطة samir ibrahim في 20 سبتمبر 2013 في 21:38
مشكور احسنت الله يوفقك