Hi I wrote a SP for restoring backup file.
------------------------------------------------------
--(1)Copy this stored procedure
create proc step3 @dbname varchar(128),@drive_fordata varchar(200),@drive_forlog varchar(200),@path varchar(500) as
drop table table3000
create table table3000(LogicalName nvarchar(128),PhysicalName nvarchar(260),Type char(1),FileGroupName nvarchar(128),
Size bigint,MaxSize bigint)
declare @string varchar(1000)
set @string = "restore filelistonly from disk = '"+@path+"'"
--print @string
insert into table3000 exec(@string)
declare @logical1 varchar(128)
set @logical1 = (select logicalname from table3000 where type = 'D')
declare @logical2 varchar(128)
set @logical2 = (select logicalname from table3000 where type = 'L')
set @string = "restore database "+@dbname+" from disk = '"+@path+"' with replace,move '"+@logical1+"' to '"+@drive_fordata+"\"+@logical1+".mdf', move '"+@logical2+"' to '"+@drive_forlog+"\"+@logical2+".ldf'"
--print @string
exec (@string)
-------------------------------------------------
--(2)Execute procedure
exec step3 'xyz','d:\test','d:\test','d:\backups\xyzbackup1.bak'
-------------------------------------------------
All you need to pass into the stored procedure are
(1)databasename
(2)new folder name for .mdf file
(3)new folder name for .ldf file
(4)physical path for backup file
but you need to make sure the (2),(3) folder exist!