PDA

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



bmanfy
چهارشنبه 14 مرداد 1388, 09:46 صبح
سلام دوستان .
احتمالا این سوال رو باید در بخش SQlServer میپرسیدم . اماخوب چون اونجا کسی نیست جواب بده .....
خوب:
چه طور میتونم زمان بازیابی اطلاعات در SQL Server 2005 فقط اطلاعات جداول رو بازیابی کنم .
چون احه به صورت معمولی اگر یک Sp یا Table بعد از تهیه BackUp ایجاد کنم و بعد بیام BackUp رو بازیابی کنم کل این تغییرات بر میگرده .

اخه من برنامه ای دارم که کلی اطلاعات درون اون وارد شده وحال یک سری تغییرات در ساختار بانکش ایجاد کردم . حال میخوام فقط اطلاعات به بانک اظافه بشه و تغییرات در بانک رو حذف نکنه .
ممنون .

merced
چهارشنبه 14 مرداد 1388, 22:34 عصر
يه راه ساده:
با اين ابزار Generate Script اون چيزايي كه اضافه كردي رو تبديل به كد SQL‌ مي كني بانك رو برميگردوني و اون اسكريپت ها رو اجرا مي كني (sp و query‌هات رو مي سازي) و دوباره پشتيبان بگير

سعید صابری
پنج شنبه 15 مرداد 1388, 07:43 صبح
من يه بار اين سوال توي همين فروم پرسيدم اينجا يه سري بزن (http://barnamenevis.org/forum/showthread.php?t=158118)

bmanfy
پنج شنبه 15 مرداد 1388, 18:15 عصر
يه راه ساده:
با اين ابزار Generate Script اون چيزايي كه اضافه كردي رو تبديل به كد SQL‌ مي كني بانك رو برميگردوني و اون اسكريپت ها رو اجرا مي كني (sp و query‌هات رو مي سازي) و دوباره پشتيبان بگير

مرسی .
اما مشکل اینجاست که سطح این تغییرات خیلی وسیعه . و حتی نمیدونم کجا ها تغییر کرده .

البته اگر درباره همین روش هم بیشتر برام توضیح بدی ممنون میشم .

merced
پنج شنبه 15 مرداد 1388, 22:42 عصر
روشهايي كه پيشنهاد مي كنم.
1- حداكثر 2 يا سه جدول داري كه اطلاعات اصلي رو ذخيره ميكنه. مثلاً ‌جدول اسناد روزانه و .... اين جداول رو به يه بانك ديگه (يا همون بانك جديد اگه اسمش فرق مي كنه) منتقل كن (با يه برنامه و يا يه كوئري)


INSERT INTO Database2.dbo.Table1 (Fam)
SELECT Name

FROM dbo.tCity


از ابزار bcp هم مي توني استفاده كني . همونطور كه در دستور بالا مي بيني اگه در جدولت فيلد هم اضافه كرده باشي يا تغيير نام داده باشي مشكلي پيش نمياد من در بالا فيلد city رو توي فيلد fam گذاشتم. مي توني اينو بسط بدي و بهتر استفاده كني.

2- از generate script . هم مي شه. شما با راست كليك روي ديتابيس و انتخاب منوي Task ‌و زير منوي generate scripts مي توني از كل بانك يا قسمتهايي از اون اسكريپت بگيري . اين رو تو ويزارد ميتوني ببيني
البته اين كار در صورتي خوبه كه فقط بخواي sp و كوئري ها رو دستكاري كني و در ساختار دست نبري

3- روش بعدي استفاده از يه برنامه هست. يه برنامه بنويسي كه كار انتقال اطلاعات رو از اين بانك ه اون يكي انجام بده. راه مناسبي هست فقط در صورتي كه حسابي ساختار رو به هم ريخته باشي.


هميشه راه بهتري وجود داره...

bmanfy
شنبه 17 مرداد 1388, 19:25 عصر
Generate Scrip رو دیدم اما یه مسئله ای که هست خطا میده و به اولین گزینه که میرسه خطا میده .
البته خطاشو یادم رفت بیارم .
وقتی به اولین شی میرسه خطا میده . در مورد تنظیماتش چیز خاصی داره ؟

merced
شنبه 17 مرداد 1388, 23:29 عصر
نداره. چيز خاصي نديدم

bmanfy
یک شنبه 18 مرداد 1388, 18:33 عصر
مرسی .
مشکلش رو فهمیدم . اخه Sp ها و Trigger های من Encrypt شده بود به خاطر این خطا میداد .

راههای دیگری رو که در بالا گفتید متوجه شدم و اما به جز ابزار pcb. . این هم جز ابزارهای SqlServer هستش ؟
اگه آره کجاست .

merced
یک شنبه 18 مرداد 1388, 22:18 عصر
بله bcp يك utility هست كه ميتوني در Help اطلاعات كاملي ازش بدست بياري.
اون رو توي command prompt مثل يه دستور مي نويسند و استفاده مي كنن.
لينكي كه minair2004 هم اون بالا معرفي كرد يه چيزايي توش نوشته




usage: bcp {dbtable | query} {in | out | queryout | format} datafile
[-m maxerrors] [-f formatfile] [-e errfile]
[-F firstrow] [-L lastrow] [-b batchsize]
[-n native type] [-c character type] [-w wide character type]
[-N keep non-text native] [-V file format version] [-q quoted identifier]
[-C code page specifier] [-t field terminator] [-r row terminator]
[-i inputfile] [-o outfile] [-a packetsize]
[-S server name] [-U username] [-P password]
[-T trusted connection] [-v version] [-R regional enable]
[-k keep null values] [-E keep identity values]
[-h "load hints"] [-x generate xml format file]