PDA

View Full Version : چطور از يك جدول مورد نظر در SQL Server پشتيبان بگيريم



sh2007
دوشنبه 27 خرداد 1387, 08:03 صبح
با سلام خدمت اساتيد
من جستجوي زيادي كاردم مطلب مفيدي در اين خصوص نبود كه :
چطور مي توانيد از يك يا چند جدول مورد نظر در يك پايگاه داده SQL Server پشتيبان تهيه و آنرا بازيابي كرد

ممنون

rezarafiee
دوشنبه 27 خرداد 1387, 08:34 صبح
از یک جدول یا چند جدول بخصوص نمی توانید backup بگیرید بلکه باید از exportو import جهت این منظور استفاده کنید.

mehrnoosh_al62
دوشنبه 27 خرداد 1387, 09:31 صبح
سلام دوست عزیز
من خودم تو برنامم این کار رو کردم. کد خاصی که بتونه این کارو کنه وجود نداره و شما میتونی دستی این کار رو انجام بدی به این شکل:
اول یه database با نام دلخواه create کن
بعد با دستور select * into جدول یا جدول هایی که میخوای backup بگیری رو درون دیتابیس جدید کپی کن
حالا از دیتابیسی که ساختی backup بگیر
در آخر هم دیتابیس جدید رو drop کن

mehrnoosh_al62
دوشنبه 27 خرداد 1387, 09:39 صبح
یه بخشی از کدم رو براتون میذارم امیدوارم مفید باشه

SqlCommand sqlcomm = new SqlCommand();
DataTable table_select = new DataTable();
SqlDataAdapter adp = new SqlDataAdapter();
sqlcomm.Connection = new SqlConnection();
sqlcomm.Connection.ConnectionString = your connection string
sqlcomm.Connection.Open();
sqlcomm.CommandText = " create database backup_db ";
sqlcomm.ExecuteNonQuery();
pg1.Maximum = checkedListBox1.CheckedItems.Count;

for (int i = 0; i <= checkedListBox1.Items.Count - 1; i++)
{
if (checkedListBox1.GetItemChecked(i) == true)
{
sqlcomm.CommandText = " select * into backup_db.dbo." + checkedListBox1.Items[i].ToString() + " from " + [database name] + ".dbo." + checkedListBox1.Items[i].ToString() + " option (keep plan) ";

sqlcomm.ExecuteNonQuery();
}

}
sqlcomm.CommandTimeout = 500;
sqlcomm.CommandText = " BACKUP DATABASE backup_db TO DISK = '" +path "' " +
" drop database backup_db";
sqlcomm.ExecuteNonQuery();
sqlcomm.Connection.Close();


در ضمن باید بگم که chechlistbox شامل جداول دیتابیس مورد نظره . تو برنامم کاربر از checklistbox جداولی که میخواد backup بگیره رو انتخاب میکنه