PDA

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



mehditik
شنبه 18 مرداد 1393, 22:26 عصر
سلام من دو تا جدول هم ساختار توی دوتابانک جداگانه در sql دارم که میخوام تمام اطلاعات جدول اول را به صورت کامل به جدول دوم انتقال بدم .چطوری میتونم این کار رو در c# انجام بدم؟ آیا با کد نویسی میتونم انجام بدم یا حتماً باید توی sql کوئری تعریف کنم و این کار رو انجام بدم ؟

jeson_park
شنبه 18 مرداد 1393, 22:36 عصر
با استفاده از linked server (http://www.c-sharpcorner.com/uploadfile/suthish_nair/linked-servers-in-sql-server-2008/) استفاده کنید
بعد با یه دستور مثل دستور زیر جدول یک پایگاه داده رو انتقال بدین


insert into MaghsadServer.DBName.dbo.TableName
select * from MabdaaServer.DBName.dbo.TableName

mz6488
شنبه 18 مرداد 1393, 22:58 عصر
string query = "select * from [dbo].table1";
cmd1.CommandText = query ;
SqlDataReader sdr = cmd1.ExecuteReader(System.Data.CommandBehavior.Clo seConnection);
string sqlcmd = "";
while (sdr.Read()){
sqlcmd += " insert into [dbo].table1 select '" + sdr[0].ToString() + "','" + sdr[1].ToString () + "'";
}
cmd2.CommandText = sqlcmd ;
cmd2.ExecuteNonQuery();
cmd1.Connection.Close();

cmd2.Connection.Close();

plus
یک شنبه 19 مرداد 1393, 00:46 صبح
سلام من دو تا جدول هم ساختار توی دوتابانک جداگانه در sql دارم که میخوام تمام اطلاعات جدول اول را به صورت کامل به جدول دوم انتقال بدم .چطوری میتونم این کار رو در c# انجام بدم؟ آیا با کد نویسی میتونم انجام بدم یا حتماً باید توی sql کوئری تعریف کنم و این کار رو انجام بدم ؟
اگه دیتابیس ها در دو سرور جداگونه هستن، همونطور که در پست 2 گفتن از Linked Server استفاده کنید و البته میتونید از #C هم انجام بدین، به این صورت که دیتا از سرور مبدا به برنامه میاد و از اونجا به سرور مقصد ارسال میشه.
ولی اگه دستابیس ها در یک سرور هستن، به راحتی با ذکر اسم دیتابیس ها میتونید با Query این کار رو انجام بدین. البته باز هم از #C میشه انجام داد ولی اگه مستقیم با Query انجام بشه Performance بهتری داره:
با Query ی شبیه به این (البته ممکنه این Syntax Error داشته باشه، دستی نوشتم).

INSERT INTO destinationDataBase.Table1 (Field1, Field2, Field3)
SELECT Field1, Field2, Field3 FROM sourceDataBase.Table1

sohil_ww
یک شنبه 19 مرداد 1393, 06:37 صبح
همه راه حل ها خوبن و مورد قبول ولی اگه بانک هات قراره روزانه این اینسرت و انجام بدی بهتره که از ssis استفاده کنی ولی اگه فقط یه باره همین linkserver خوبه

mehditik
سه شنبه 21 مرداد 1393, 18:13 عصر
سلام آره روزانه باید این کار رو انجام بدم . ssis رو میشه بیشتر توضیح بدین؟
ممنون