PDA

View Full Version : سوال: Restore فایل Backup با اسم دلخواه



hp1361
دوشنبه 19 فروردین 1392, 08:50 صبح
با سلام

من Backup دیتابیس رو با کد زیر Restore میکنم


begin
Close;
Params.Clear;
SQL.Clear;
SQL.Add('RESTORE DATABASE :DBName FROM DISK = :Path');
ParamByName('DBName').Value := edt_DBName.Text;
ParamByName('Path').Value := ExtractFilePath(Application.ExeName) + 'ِDBBack';
ExecSQL;
end;


اما بعد از Restore نام فایل MDF بانک همونی ذخیره میشه که قبلا بکاپ گرفته شده. مثلا اگر من از بانکی بنام Test.MDF بکاپ گرفتم و در سیستم دیگر بنام Test2 بازیابی میکنم فایل کماکان بنام Test.MDF در پوشه مورد نظر ذخیره میشه(هرچند در SQL Managment بنام Test1 نمایش داده میشه).

راه حل چیه؟

Touska
دوشنبه 19 فروردین 1392, 08:54 صبح
روش بازیابی شما باید به این شکل باشد :

RESTORE DATABASE TestDB
FROM DISK = 'C:\A.bak'
WITH MOVE 'AdventureWorks_Data' TO 'C:\MySQLServer\testdb.mdf',
MOVE 'AdventureWorks_Log' TO 'C:\MySQLServer\testdb.ldf';

hp1361
دوشنبه 19 فروردین 1392, 09:00 صبح
ممنون از پاسخ

اما من میخوام در آدرس پیش فرض SQL SERVER سیستم مقصد ذخیره بشه(نه 'C:\MySQLServer'). آدرس رو چطور بدست بیارم؟

Touska
دوشنبه 19 فروردین 1392, 11:09 صبح
با این کوئری میشه :

SELECT SUBSTRING(physical_name, 1, CHARINDEX(N'master.mdf', LOWER(physical_name)) - 1)
FROM master.sys.master_files
WHERE database_id = 1 AND file_id = 1

یوسف زالی
دوشنبه 19 فروردین 1392, 11:13 صبح
دوست من تاپیک بی ارتباط به دلفی هست.
در بخش TSQL باید باشه.
احتمالا در ران کردن اسکریپت مربوطه در دلفی با ارور مواجه می شید.