PDA

View Full Version : سوال: انتقال داده از جدولی به جدول دیگر



sheibanizaveh
یک شنبه 16 بهمن 1390, 10:08 صبح
با عرض سلام به استاتید محترم
یک دستور توی SQL هست که اطلاعات رو از جدولی به جدولی دیگر که دیتابیس واحدی دارند انتقال میدهده در ذیل به اون اشاره میکنم , حالا من دستوری مشابه این دستور میخوام که انتقال اطلاعات بین دو جدول که دیتابیس متفاوتی دارند را انجام بده . ممنون میشم از راهنمایی شما .

Dim Strsql_in AsString = "insert into Table01 (Fld1,Fld2,Fld3,Fld4,Fld5) " _
& "select Fld1,Fld2,Fld3,Fld4,Fld5 from Table02 where Fld1 =1 order by Fld1"
Dim cmd_in AsSqlCommand
cmd_in = NewSqlCommand(Strsql_in, NewSqlConnection("Data Source=.;Initial Catalog=Toos;Integrated Security=True"))




این دستور بالا انتقال اطلاعات رو به صورت صحیح انجام میده .

shadi khanum
یک شنبه 16 بهمن 1390, 18:08 عصر
دوست عزیز سوال شما مربوط به تالار Sql میشه.چون نیاز به یه کوئری دارید که بتونید اطلاعات رو بین دو تا دیتابیس جابجا کنید
insert into test1.dbo.tb1 (name , id) select name,id from test.dbo.tb1
فرض کنید که test و Test1 اسم دو تا دیتابیس هاتون باشن و tbl1 هم اسم جداولتون که میتونه متفاوت هم باشه..
موفق باشی

sheibanizaveh
یک شنبه 16 بهمن 1390, 18:11 عصر
سلام
من این کد رو پیدا کردم که اطلاعات رو ارسال می کنه به دو دیتابیس متفاوت

Dim Strsql_in AsString = "INSERT INTO B.DBO.TT(Fid1) SELECT (Fild1) FROM A.DBO.T"


حالا اگر سرور ها متفاوت بود مثلا یک سرور Local دیگری 10.30.40.41 بود چیکار کنیم ؟
سپاس

mgh64120
یک شنبه 16 بهمن 1390, 19:11 عصر
سلام
حالا اگر سرور ها متفاوت بود مثلا یک سرور Local دیگری 10.30.40.41 بود چیکار کنیم ؟
سپاس

سلام دوست عزيز
تنها راه حلي كه به نظر من مياد اين هست كه شما بايد در يك لحظه با دو شي SqlConnection به دو ديتابيس در دو سرور مجزا اتصال برقرار كرده و اطلاعات رو جابه جا كنيد.
توسط يه دستور SQL ساده مانند آنچه كه در پست 3 گذاشته ايد اين كار شدني نيست!
چون در هر اتصال شما فقط ميتونيد فقط به ديتابيس هاي يك سرور دسترسي داشته باشيد.
همينطور كه در كد زير مشاهده ميكنيد در خط دوم سرور به صورت محلي و از نوع Express تعيين شده
CSB = New SqlConnectionStringBuilder
CSB.DataSource = ".\SQLEXPRESS"
CSB.ConnectTimeout = 30
CSB.InitialCatalog = "TestDB"
CSB.IntegratedSecurity = True

موفق باشيد...

shadi khanum
یک شنبه 16 بهمن 1390, 19:25 عصر
در اون صورت باید از تکنولوؤی های linkServer و logshipping و ..استفاده کنی یه سرچ کنی خودت پیدا میکنی.. موفق باشی

sheibanizaveh
یک شنبه 16 بهمن 1390, 21:14 عصر
سلام mgh64120 عزیز من دستوری رو که در پست 3 گذاشتم درست کار میکنه حالا با 2 تا سرور برام جای سوال داره ؟!؟!

mgh64120
یک شنبه 16 بهمن 1390, 21:36 عصر
سلام mgh64120 عزیز من دستوری رو که در پست 3 گذاشتم درست کار میکنه حالا با 2 تا سرور برام جای سوال داره ؟!؟!
سلام
اره! من هم تست كردم و ديدم دستور پست 3 درست كار ميكنه. من كه نگفتم دستور پست 3 غلط هست.
من گفتم انجام اين كار با دو سرور مجزا در محيط VB با يك دستور SQl شدني نيست!
موفق باشيد...