PDA

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



mhmoein
پنج شنبه 24 تیر 1389, 15:03 عصر
با سلام خدمت دوستان عزیز

من می خواستم اطلاعات یک جدول رو از بانک SQL رو یکجا به یک جدول دیگه منتقل کنم با چه دستوری در VB.NET می شه چنین کاری رو انجام داد؟

vbworm
پنج شنبه 24 تیر 1389, 15:13 عصر
INSERT INTO TABLE2 (COL1, COL2, COL3) SELECT COL1, COL4, COL7 FROM TABLE1

mhmoein
پنج شنبه 24 تیر 1389, 16:47 عصر
ممنون

در صورتی که بخوام توسط داده های فیلد تاریخ ارسال رو محدود کنم چطور
مثلا از تاریخ 01/01/89 تا تاریخ 01/06/89 هر رکوردی وجود داشت به جدول دوم ارسال بشه

hero4000
پنج شنبه 24 تیر 1389, 18:35 عصر
INSERT INTO TABLE2 (COL1, COL2, COL3) SELECT COL1, COL4, COL7 FROM TABLE1 Where Col7 Between (89/01/01,89/06/01)

mhmoein
پنج شنبه 24 تیر 1389, 20:40 عصر
با سلام
من این کد رو نوشتم اما خطا می ده می تونید بگید دلیلش چی هست.



myConnection = New SqlConnection("server=.;uid=sa;pwd=;database=gh")
myConnection.Open()
myCommand = New SqlCommand("INSERT INTO dbo.2 (name,famil) SELECT name,famil FROM dbo.1")
myCommand.ExecuteNonQuery()
MessageBox.Show("New Row Inserted")
myConnection.Close()

b.mahsa
پنج شنبه 24 تیر 1389, 20:42 عصر
متن خطا رو میتونید بزارید؟

mhmoein
پنج شنبه 24 تیر 1389, 21:46 عصر
اینم تصویر خطا

mohammad.moosaei
پنج شنبه 24 تیر 1389, 21:54 عصر
سلام داداش چرا کانکشن رو وصل نکردی :

کد خودت درسته فقط این خط رو اینجوری اصلاح کن :


myCommand = New SqlCommand("INSERT INTO dbo.2 (name,famil) SELECT name,famil FROM dbo.1",myConnection)

mhmoein
پنج شنبه 24 تیر 1389, 22:23 عصر
ممنون دوست عزیز
یه سوال دیگه اگر بخواهیم از دو بانک مختلف این کار انجام شود انوقت چه جوری باید این کد رو نوشت.

مثلا اطلاعات جدول AB از بانک SAL انتقال پیدا کنه به جدول DC از بانک SALBAK .
با تشکر

mohammad.moosaei
جمعه 25 تیر 1389, 00:07 صبح
ممنون دوست عزیز
یه سوال دیگه اگر بخواهیم از دو بانک مختلف این کار انجام شود انوقت چه جوری باید این کد رو نوشت.

مثلا اطلاعات جدول AB از بانک SAL انتقال پیدا کنه به جدول DC از بانک SALBAK .
با تشکر

اول باید فیلدهای دو جدول از نظر تعداد و ساختار مثل هم باشن .

بعدش میتونی از این کد استفاده کنی.



INSERT INTO SALBAK.DBO.DC(FIELS NAMES)
SELECT (FIELDS NAMES) FROM SAL.DBO.AB

mhmoein
جمعه 25 تیر 1389, 11:58 صبح
اول باید فیلدهای دو جدول از نظر تعداد و ساختار مثل هم باشن .

بعدش میتونی از این کد استفاده کنی.



INSERT INTO SALBAK.DBO.DC(FIELS NAMES)
SELECT (FIELDS NAMES) FROM SAL.DBO.AB

دوست من با عرض معذرت از شما. این کد رو هم نوشتم این خطا رو می ده



myConnection = New SqlConnection("server=127.0.0.1;user id=sa; pwd=h1m5d ;initial catalog=gh")
myConnection.Open()
myCommand = New SqlCommand("INSERT INTO gh.dbo.CD (name,famil) SELECT (name,famil) FROM gh.dbo.AB", myConnection)
myCommand.ExecuteNonQuery()
MessageBox.Show("New Row Inserted")
myConnection.Close()

mohammad.moosaei
جمعه 25 تیر 1389, 14:26 عصر
سلام داداش یک نکته ظریف یادت رفته : توی عبارن Select نباید پرانتز استفاده کنید.

کد اصلاح شده :


myConnection = New SqlConnection("server=127.0.0.1;user id=sa; pwd=h1m5d ;initial catalog=gh")
myConnection.Open()
myCommand = New SqlCommand("INSERT INTO gh.dbo.CD (name,famil) SELECT name,famil FROM gh.dbo.AB", myConnection)
myCommand.ExecuteNonQuery()
MessageBox.Show("New Row Inserted")
myConnection.Close()

mhmoein
جمعه 25 تیر 1389, 15:33 عصر
سلام داداش یک نکته ظریف یادت رفته : توی عبارن Select نباید پرانتز استفاده کنید.

کد اصلاح شده :


myConnection = New SqlConnection("server=127.0.0.1;user id=sa; pwd=h1m5d ;initial catalog=gh")
myConnection.Open()
myCommand = New SqlCommand("INSERT INTO gh.dbo.CD (name,famil) SELECT name,famil FROM gh.dbo.AB", myConnection)
myCommand.ExecuteNonQuery()
MessageBox.Show("New Row Inserted")
myConnection.Close()

ممنون از شما
امیدوارم نگی این چقدر رو داره.
اما اگر این دو بانک هر کدوم به صورت مجزا در دو سرور متفاوت باشند انوقت چکار باید کرد.
مثلا بانک gh1 در SQLیک کامپیوتر که IPاون 192.168.3.1 قرار داره و
بانک gh2 در SQL یک کامیپوتر دیگه که IP اون 192.168.1.1 قرار داره.
حالا چطوری می شه بین این دو بانک انتقال اطلاعات کرد.

mortezaadi
جمعه 25 تیر 1389, 16:36 عصر
ممنون از شما
امیدوارم نگی این چقدر رو داره.
اما اگر این دو بانک هر کدوم به صورت مجزا در دو سرور متفاوت باشند انوقت چکار باید کرد.
مثلا بانک gh1 در SQLیک کامپیوتر که IPاون 192.168.3.1 قرار داره و
بانک gh2 در SQL یک کامیپوتر دیگه که IP اون 192.168.1.1 قرار داره.
حالا چطوری می شه بین این دو بانک انتقال اطلاعات کرد.


یه سرچ درباره openrowset یا opendatasource بکن

mhmoein
جمعه 25 تیر 1389, 17:40 عصر
یه سرچ درباره openrowset یا opendatasource بکن


من که متوجه منظورتون نشدم
اما جستجو کردم ولی چیزی پیدا نشدکه بتونه جواب سوال من باشه.

mohammad.moosaei
جمعه 25 تیر 1389, 20:46 عصر
ممنون از شما
امیدوارم نگی این چقدر رو داره.
اما اگر این دو بانک هر کدوم به صورت مجزا در دو سرور متفاوت باشند انوقت چکار باید کرد.
مثلا بانک gh1 در SQLیک کامپیوتر که IPاون 192.168.3.1 قرار داره و
بانک gh2 در SQL یک کامیپوتر دیگه که IP اون 192.168.1.1 قرار داره.
حالا چطوری می شه بین این دو بانک انتقال اطلاعات کرد.

این یکی رو دیگه خدایی نمی دونم ، اما می گردم اگه پیدا شد حتما بهتون میگم .

راستی آیا از نظر طراحی پایگاه داده این کار شما درسته ؟

mhmoein
شنبه 26 تیر 1389, 00:15 صبح
ممنونم از شما اگر بتونی کمک کنی.
راستش نمی دونم این کار درست هست یانه اما حتما باید این کار رو انجام و بهش نیاز دارم.
بازم ممنونم از شما.