الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن نسخ جدول من قاعدة بيانات على الانترت الى قاعدة بيانات فى جهاز بتاعى

بدأه ام عباد الرحمن في 23 ديسمبر 2009 · 13 رد · 3,093 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

اخواتى اريد المساعدة الله يبارك فيكم

انا كان عندى استضافة وكنت حاطة عليها جدول لكى اعمل اتصال بالموقعى بتاعى الى قاعدة بيانات

والا انا بعمل مشروع مهم جدا جدا

والمطلوب فيها عمل تصدير قاعدة بيانات من الانترنت الى جهاز بتاعى وحاولت بكل الطرق ولم افلح بعد

والان اخواتى تواصلت الى حد ما بكون بعمل نسخ جدول من قاعدة بيانات الى قاعدة بيانات اخرى فى نفس الخادم ولكن قدتبقت نفس المشكلة ولم اجد حل

بكل اختصار لكى لا اطول عليكم

كيف يمكننى نسخ جدول من قاعدة بيانات فى الانترنت

الى

قاعدة بيانات فى كمبيوتر بتاعى عن طريق

SQL

او كود بالفيجوال البيسك او سى سارب ويندوز ابليكشن

وجزيتم خيرا يا اخواتى وبارك الله فيكم

983637312.gif

فــــلــيقولوا عن حجابي انـه يـفـني شـبـابـي ** ولـيـغالـوا فـي عـتــابـــي إن لـلـديـن انـتـسـابــــــي

لا وربــي لـن أبـالـي هـــمـتي مــثــل الجـــبــال ** أي معـنى للجـمـــال إن غــدا ســهــل الــمـــــنال

للتحميل الانشودة

http://www.hawahome.com/vb/nupload/50317_1187278499.zip

#2
ام عباد الرحمن كتب:

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

اخواتى اريد المساعدة الله يبارك فيكم

انا كان عندى استضافة وكنت حاطة عليها جدول لكى اعمل اتصال بالموقعى بتاعى الى قاعدة بيانات

والا انا بعمل مشروع مهم جدا جدا

والمطلوب فيها عمل تصدير قاعدة بيانات من الانترنت الى جهاز بتاعى وحاولت بكل الطرق ولم افلح بعد

والان اخواتى تواصلت الى حد ما بكون بعمل نسخ جدول من قاعدة بيانات الى قاعدة بيانات اخرى فى نفس الخادم ولكن قدتبقت نفس المشكلة ولم اجد حل

بكل اختصار لكى لا اطول عليكم

كيف يمكننى نسخ جدول من قاعدة بيانات فى الانترنت

الى

قاعدة بيانات فى كمبيوتر بتاعى عن طريق

SQL

او كود بالفيجوال البيسك او سى سارب ويندوز ابليكشن

وجزيتم خيرا يا اخواتى وبارك الله فيكم

شوفي لك مع هذا الموضوع ممكن ايفيدك

http://webservices.nic.in/%5Cwsmad%5CResourceCentre%5Csql_updation.aspx

or

http://blog.sqlauthority.com/2009/07/29/sql-server-2008-copy-database-with-data-generate-t-sql-for-inserting-data-from-one-table-to-another-table/

تم تعديل هذه المشاركة بواسطة sidi100 في 23 ديسمبر 2009 في 11:12

#3

يمكنك استخدام الـ Linked server لإتمام هذه العمليه كالتالى

سأفترض ان يوجد سرفرين اولهم اسمه ServerInternet و الأخر اسمه ServerHome.

الـ ServerInternet به قاعدة بيانات اسمها InternetDb و بها جدول اسمه MyData و اسم المستخدم لهذه القاعدة هو InternetUser و كلمة السر هى mypass.

الـ ServerHome به قاعدة بيانات اسمها HomeDb و انت تريدى ان تنسخى الجدول MyData (المذكور بال‘لى) بكل البيانات الموجوده به هنا.

الـ ServerHome لابد من ان تكون لديك صلاحيات admin عليه لإنشاء الـ LinkedServer، قومى بتنفيذ جملة الإستعلام التاليه على الـ ServerHome

EXEC sp_addlinkedserver
    @server     = N'IS_Alias',
    @srvproduct = N'',
    @provider   = N'SQLNCLI',
    @provstr    = N'SERVER=InternetServer;Integrated Security=True;'

EXEC sp_addlinkedsrvlogin
    @rmtsrvname  = N'IS_Alias',
    @useself     = N'False',
    @locallogin  = NULL,
    @rmtuser     = N'InternetUser',
    @rmtpassword ='mypass'

الإسم IS_Alias هو مجرد اسم بديل لبيانات السرفر ServerInternet و التى بكتابتها يتيح لكى الدخول على جميع قواعد البيانات التى يستطيع المستخدم InternetUser التعامل معها

بعد تنفيذ الجملتين السابقتين يمكنك رؤية قواعد البيانات المتاحه عن طريق فتح SQLServer Managment Studio من فتح ServerHome يليها Server Objects يليها Linked Servers و ستجدى عنصر اسمه IS_Alias عند فتحه ستجدى فرع اسمه Catalog بداخله كل قواعد البيانات التى تستطيعى التعامل معها و يمكنك فتح اى قاعدة منهم لرؤية محتواياتها مثل الجدوال و الإجراءات المخزنه و الدوال ... إلخ و لكنك لن تستطيعى رؤية ما يحتووا عليه.

الأن تم انشاء الـ Linked Server داخل الـ ServerHome، لنسخ الجدول MyData الموجود بقاعدة البيانات ServerDb بالبيانات الموجوده به داخل قاعدة البيانات HomeDb نستخدم الجمله التاليه

Select *
Into   MyDataBackupTable
From   IS_Alias.ServerDb.dbo.MyData

الجمله السابقه تقوم بإنشاء جدول اسمه MyDataBackupTable داخل قاعدة بيانات HomeDb هذا الجدول مماثل فى تركيبه للجدول MyData الموجود بقاعدة البيانات ServerDb و يحتوى الأن على كل البيانات.

سرعة نقل البيانات من الجدول الموجود بالسرفر المصدر إلى الجدول الموجود بالسرفر الهدف تعتمد على حجم البيانات و سرعة الأتصال بالأنترنت.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#4
Muhammad alaa كتب:

يمكنك استخدام الـ Linked server لإتمام هذه العمليه كالتالى

سأفترض ان يوجد سرفرين اولهم اسمه ServerInternet و الأخر اسمه ServerHome.

الـ ServerInternet به قاعدة بيانات اسمها InternetDb و بها جدول اسمه MyData و اسم المستخدم لهذه القاعدة هو InternetUser و كلمة السر هى mypass.

الـ ServerHome به قاعدة بيانات اسمها HomeDb و انت تريدى ان تنسخى الجدول MyData (المذكور بال‘لى) بكل البيانات الموجوده به هنا.

الـ ServerHome لابد من ان تكون لديك صلاحيات admin عليه لإنشاء الـ LinkedServer، قومى بتنفيذ جملة الإستعلام التاليه على الـ ServerHome

EXEC sp_addlinkedserver
    @server     = N'IS_Alias',
    @srvproduct = N'',
    @provider   = N'SQLNCLI',
    @provstr    = N'SERVER=InternetServer;Integrated Security=True;'

EXEC sp_addlinkedsrvlogin
    @rmtsrvname  = N'IS_Alias',
    @useself     = N'False',
    @locallogin  = NULL,
    @rmtuser     = N'InternetUser',
    @rmtpassword ='mypass'

الإسم IS_Alias هو مجرد اسم بديل لبيانات السرفر ServerInternet و التى بكتابتها يتيح لكى الدخول على جميع قواعد البيانات التى يستطيع المستخدم InternetUser التعامل معها

بعد تنفيذ الجملتين السابقتين يمكنك رؤية قواعد البيانات المتاحه عن طريق فتح SQLServer Managment Studio من فتح ServerHome يليها Server Objects يليها Linked Servers و ستجدى عنصر اسمه IS_Alias عند فتحه ستجدى فرع اسمه Catalog بداخله كل قواعد البيانات التى تستطيعى التعامل معها و يمكنك فتح اى قاعدة منهم لرؤية محتواياتها مثل الجدوال و الإجراءات المخزنه و الدوال ... إلخ و لكنك لن تستطيعى رؤية ما يحتووا عليه.

الأن تم انشاء الـ Linked Server داخل الـ ServerHome، لنسخ الجدول MyData الموجود بقاعدة البيانات ServerDb بالبيانات الموجوده به داخل قاعدة البيانات HomeDb نستخدم الجمله التاليه

Select *
Into   MyDataBackupTable
From   IS_Alias.ServerDb.dbo.MyData

الجمله السابقه تقوم بإنشاء جدول اسمه MyDataBackupTable داخل قاعدة بيانات HomeDb هذا الجدول مماثل فى تركيبه للجدول MyData الموجود بقاعدة البيانات ServerDb و يحتوى الأن على كل البيانات.

سرعة نقل البيانات من الجدول الموجود بالسرفر المصدر إلى الجدول الموجود بالسرفر الهدف تعتمد على حجم البيانات و سرعة الأتصال بالأنترنت.

و الله ولى التوفيق

بيسم الله الرحمن الرحيم

اولا احب اشكرم جدا على المساعدة واحب اعتزؤ ايضا لتكرار الموضوع فى اكثر من مكان ولكن تــالله العظيم انا لم اكن اعلم ان الاهتام سوف ياتى بهذا الشكل وجزاكم الله خيرا

اخوانى لدى تعليق بسيط جد وارجو التوضيح بالكود السابق

انا سوف اعطيكم مثال وارجو ان تساعدونى بهذا المثال لكى استطيع ان افهم الكود بشكل واضحد

بالنسبة لاسم الخادم فى الانترنت : 67.205.76.154

والرقم السرى : aaa

واسم المستخدم : bbb

اسم قاعدة بيانات :D_samera

اسم الجدول المراد نسخه الى الخادم المحلى : t_all

اما الخادم المحلى

ااسم الخادم المحلى : .

hاسم قاعدة بيانات بالخادم المحلى : c_home

ولا يوجد بها اسم مستخدم ولا يوجد بها كلمة المرو ولا يوجد بها جداول نهائيا

اخوانى اين اكتب الكود الذى تم كتابة فى المشاركة الماضية ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

وهل يوجد حل لكى ان اكتبه ببرنامج بسيط داخل الفيجوال بيسك دوت نت او سى شارب حيث اننى اعرف اللغتين

وجزاكم الله خيرا ويجعله فى ميزان حسناتكم

983637312.gif

فــــلــيقولوا عن حجابي انـه يـفـني شـبـابـي ** ولـيـغالـوا فـي عـتــابـــي إن لـلـديـن انـتـسـابــــــي

لا وربــي لـن أبـالـي هـــمـتي مــثــل الجـــبــال ** أي معـنى للجـمـــال إن غــدا ســهــل الــمـــــنال

للتحميل الانشودة

http://www.hawahome.com/vb/nupload/50317_1187278499.zip

#5

بالنسبه للجمله التاليه

Select *
Into   MyDataBackupTable
From   IS_Alias.ServerDb.dbo.MyData

نسيت ذكر انه لابد من استبدال dbo إلى اسم الـ schema owner بمعنى انه قد لا يكون منشئ الجدول dbo قد يكون احد اخر، و لمعرفته فقط انظرى إلى اسم الجدول و ستجدى انه مقسم لجزئين اولهم الـ owner و ثانيهم اسم الجدول (و يتوسطهم النقطه).

اذا كان اسم الجدول يحتوى على نقط بمعنى اذا كان اسم الجدول هو MyData.Private لابد من عند استخدامه داخل الجمله ان يتم وضع bracket حول لإسم، الجمله ستصبح شبيه بالتاليه

Select *
Into   MyDataBackupTable
From   IS_Alias.ServerDb.dbo.[MyData.Private]

اقتباس
خوانى اين اكتب الكود الذى تم كتابة فى المشاركة الماضية ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

وهل يوجد حل لكى ان اكتبه ببرنامج بسيط داخل الفيجوال بيسك دوت نت او سى شارب حيث اننى اعرف اللغتين

الكود يتم كتابته داخل Editor ألذى يأتى مع الـ SQL Server 2005 وهو SQL Server Management Studio.

و الله ولى التوفيق

تم تعديل هذه المشاركة بواسطة Muhammad alaa في 23 ديسمبر 2009 في 16:01

مدونتي: C++ Tips and Tricks

#6

اخى العزيز ارجو ان تفهى هذه النقطة

EXEC sp_addlinkedserver

@server = N'IS_Alias',

@srvproduct = N'',

@provider = N'SQLNCLI',

@provstr = N'SERVER=InternetServer;Integrated Security=True;'

EXEC sp_addlinkedsrvlogin

@rmtsrvname = N'IS_Alias',

@useself = N'False',

@locallogin = NULL,

@rmtuser = N'InternetUser',

@rmtpassword ='mypass'

هذه بيانات الخادم بتاعى بمثال

اين اكتبهم ؟؟؟؟؟؟؟؟

اسم الخادم :67.235.76.125

اليوزر نيم : samera

الباسورد : 123456789

اخويا العزيز

معلش خذنى على قد عقلى

وارجو ان تساعدنى وتكمل بقيت جميلك

تم تعديل هذه المشاركة بواسطة ام عباد الرحمن في 23 ديسمبر 2009 في 22:25

983637312.gif

فــــلــيقولوا عن حجابي انـه يـفـني شـبـابـي ** ولـيـغالـوا فـي عـتــابـــي إن لـلـديـن انـتـسـابــــــي

لا وربــي لـن أبـالـي هـــمـتي مــثــل الجـــبــال ** أي معـنى للجـمـــال إن غــدا ســهــل الــمـــــنال

للتحميل الانشودة

http://www.hawahome.com/vb/nupload/50317_1187278499.zip

#7

هذه هى الجمله بالبيانات المذكوره فى المشاركه السبقه

EXEC sp_addlinkedserver
    @server     = N'IS_Alias',
    @srvproduct = N'',
    @provider   = N'SQLNCLI',
    @provstr    = N'SERVER=67.235.76.125;Integrated Security=True;'

EXEC sp_addlinkedsrvlogin
    @rmtsrvname  = N'IS_Alias',
    @useself     = N'False',
    @locallogin  = NULL,
    @rmtuser     = N'samera',
    @rmtpassword ='123456789'

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#8

الف الف شكراااااااااااااااااااااا

والله يجازيكم خيرااااااااااااا

983637312.gif

فــــلــيقولوا عن حجابي انـه يـفـني شـبـابـي ** ولـيـغالـوا فـي عـتــابـــي إن لـلـديـن انـتـسـابــــــي

لا وربــي لـن أبـالـي هـــمـتي مــثــل الجـــبــال ** أي معـنى للجـمـــال إن غــدا ســهــل الــمـــــنال

للتحميل الانشودة

http://www.hawahome.com/vb/nupload/50317_1187278499.zip

#9

معلش يا اخويا طلب اخر

هذا الكود

Select *

Into MyDataBackupTable

From IS_Alias.ServerDb.dbo.[MyData.Private]

خاص لنسخ جدول واحد وباسم معين

ماذا والا اذا انا اردت نسخ كووووووووووووول الجداول دفعة واحدة ؟؟؟

ارجو المساعدة وجزاك الله خيرا

983637312.gif

فــــلــيقولوا عن حجابي انـه يـفـني شـبـابـي ** ولـيـغالـوا فـي عـتــابـــي إن لـلـديـن انـتـسـابــــــي

لا وربــي لـن أبـالـي هـــمـتي مــثــل الجـــبــال ** أي معـنى للجـمـــال إن غــدا ســهــل الــمـــــنال

للتحميل الانشودة

http://www.hawahome.com/vb/nupload/50317_1187278499.zip

#10

hاساتذتى الكبار

هل ينفع ان انسخ كل الجداول كما ذكرت فى المشاركة المضاية

وجزاكم الله خيرا

983637312.gif

فــــلــيقولوا عن حجابي انـه يـفـني شـبـابـي ** ولـيـغالـوا فـي عـتــابـــي إن لـلـديـن انـتـسـابــــــي

لا وربــي لـن أبـالـي هـــمـتي مــثــل الجـــبــال ** أي معـنى للجـمـــال إن غــدا ســهــل الــمـــــنال

للتحميل الانشودة

http://www.hawahome.com/vb/nupload/50317_1187278499.zip

#11

نعم يمكن و ذلك يتم عن طريق استخدام جداول الـ System داخل قاعدة البيانات للحصول على اسماء جداول المستخدم و بعدها يتم عمل loop على اسماء الجداول لنسخهم.

الـ loop هنا يتم بإستخدام cursor و بعدها يتم عمل deallocate له.

جارى تحضير مثال.

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#12

بإعتبار انه تم انشاء الـ Linked Server كما وضحت بالسابق و ان اسمه هو IS_Alias، قومى بتنفيذ الود التالى داخل قاعدة البيانات التى سيتم نسخ الجداول داخلها و لكن قبل تنفيذه قومى بإستبدال الكلمه DatabaseName بإسم قاعدة البيانات التى سيتم النسخ منها، الكلمه DatabaseName يوجد منها اثنان فقط داخل الكود التالى:

CREATE PROCEDURE CopyDatabaseTables
AS
BEGIN

        Declare @TableName Nvarchar(500)
        DECLARE @Schema Nvarchar(50)

        Declare DatabaseTables Cursor
        FOR Select NAME,SCHEMA_NAME(SCHEMA_ID) SchemaName
			From   IS_Alias.DatabaseName.Sys.Tables
			Where  type_desc = 'USER_TABLE'

        OPEN DatabaseTables

        Fetch Next From DatabaseTables Into @TableName, @Schema

        While @@FETCH_STATUS = 0
        Begin

		PRINT 'Copying ' + @Schema + '.' + @TableName

                set @TableName = N'Select * Into ' + @TableName +
                                 N' From IS_Alias.DatabaseName.' + @Schema + '.' +@TableName

                Execute sp_executesql @TableName

                PRINT @TableName + ' completed'

                PRINT ''

                Fetch Next From DatabaseTables Into @TableName, @Schema

        End

        Close DatabaseTables
        Deallocate DatabaseTables

END

بعد انشاء الـ Procedure السابق قومى بتنفيذه عن طريق الكود التالى

EXEC CopyDatabaseTables

كما ذكرا سابقا سرعة عملية النسخ تتم بناءا على سرعة الإتصال بالإنترنت، بعد انتهاء عملية النسخ، داخل الـ Message tab ستجدى مجموعه من الرسائل التى تعبر عن كمية البيانات التى تم نسخها و ستكون على الشكل التالى

Copying @SchemaName.@TableName

(00 row(s) affected)
Select * Into @TableName From IS_Alias.@DatabaseName.@SchemaName.@TableName completed

حيث الـ @SchemaName هو اسم الـ owner للجدول و الـ @TableName هو اسم الجدول و @DatabaseName هو اسم قاعدة البيانات.

اذا حدث ا خطأ اثناء عملية النقل ستظهر رسالة باللون الأحمر بدلا من (00 row(s) affected).

و الله ولى التوفيق

مدونتي: C++ Tips and Tricks

#13
Muhammad alaa كتب:

نعم يمكن و ذلك يتم عن طريق استخدام جداول الـ System داخل قاعدة البيانات للحصول على اسماء جداول المستخدم و بعدها يتم عمل loop على اسماء الجداول لنسخهم.

الـ loop هنا يتم بإستخدام cursor و بعدها يتم عمل deallocate له.

جارى تحضير مثال.

و الله ولى التوفيق

طيب معلش شوية رخامة منى حبتين

ممكن تعملى مثال بسيط

وربنا يجازيك خير يا خويا

شكرا جزيرا يا اخى

الله يطول فى عمرك ويجازيك كل خير

983637312.gif

فــــلــيقولوا عن حجابي انـه يـفـني شـبـابـي ** ولـيـغالـوا فـي عـتــابـــي إن لـلـديـن انـتـسـابــــــي

لا وربــي لـن أبـالـي هـــمـتي مــثــل الجـــبــال ** أي معـنى للجـمـــال إن غــدا ســهــل الــمـــــنال

للتحميل الانشودة

http://www.hawahome.com/vb/nupload/50317_1187278499.zip

#14

هل نستطيع نقل بيانات من صورة في شارت متحركة الى ملف اكسل ويبقى متحرك؟

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…