Revision: 50864
Updated Code
at September 7, 2011 21:17 by plugables
Updated Code
DECLARE @BAK_FILE_PATH varchar(300) DECLARE @DB_TO_RESTORE_TO varchar(300) DECLARE @SQL_SERVER_DATA_FOLDER varchar(300) /* [BAK_FILE_PATH] : Path of backup file. e.g; D:\DatabaseBackup\MyOldDB.bak */ SET @BAK_FILE_PATH = 'D:\DatabaseBackup\MyOldDB.bak' /* [DB_TO_RESTORE_TO] : Database to restore to. Should already exist. */ SET @DB_TO_RESTORE_TO = 'MyNewDB' /* [SQL_SERVER_DATA_FOLDER] : Sql server data folder. Usually C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data */ SET @SQL_SERVER_DATA_FOLDER = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data' /* Nothing to edit below this line */ DECLARE @LOGICAL_NAME_Data varchar(300) DECLARE @LOGICAL_NAME_Log varchar(300) DECLARE @query varchar(3000) /* Step 1 : Get the logical file names */ SET @query = 'RESTORE FILELISTONLY FROM DISK = ' + QUOTENAME(@BAK_FILE_PATH , '''') CREATE TABLE #restoretemp ( LogicalName nvarchar(128) ,Old_PhysicalName nvarchar(128) ,[Type] char(1) ,FileGroupName nvarchar(128) ,[Size] numeric(20,0) ,[MaxSize] numeric(20,0) ,FileID bigint ,CreateLSN numeric(25,0) ,DropLSN numeric(25,0) NULL ,UniqueID uniqueidentifier ,ReadOnlyLSN numeric(25,0) ,ReadWriteLSN numeric(25,0) ,BackupSizeInByte bigint ,SourceBlockSize int ,FilegroupID int ,LogGroupGUID uniqueidentifier NULL ,DifferentialBaseLSN numeric(25,0) ,DifferentialbaseGUID uniqueidentifier ,IsReadOnly bit ,IsPresent bit ) INSERT #restoretemp EXEC (@query) SELECT @LOGICAL_NAME_Data = LogicalName FROM #restoretemp WHERE [type] = 'D' SELECT @LOGICAL_NAME_Log = LogicalName FROM #restoretemp WHERE [type] = 'L' PRINT @LOGICAL_NAME_Data PRINT @LOGICAL_NAME_Log TRUNCATE TABLE #restoretemp DROP TABLE #restoretemp /* Step 2 : Restore the database */ SET @query = 'ALTER DATABASE ' + @DB_TO_RESTORE_TO + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE' EXEC (@query) SET @query = 'RESTORE DATABASE ' + @DB_TO_RESTORE_TO + ' FROM DISK = ' + QUOTENAME(@BAK_FILE_PATH , '''') + ' WITH REPLACE, ' + ' MOVE ' + QUOTENAME(@LOGICAL_NAME_Data, '''') + ' TO ' + QUOTENAME((@SQL_SERVER_DATA_FOLDER+'\'+@DB_TO_RESTORE_TO+'.mdf') , '''') + ', MOVE ' + QUOTENAME(@LOGICAL_NAME_Log, '''') + ' TO ' + QUOTENAME((@SQL_SERVER_DATA_FOLDER+'\'+@DB_TO_RESTORE_TO+'_log.ldf'), '''') EXEC (@query) SET @query = 'ALTER DATABASE ' + @DB_TO_RESTORE_TO + ' SET MULTI_USER' EXEC (@query)
Revision: 50863
Updated Code
at September 7, 2011 21:15 by plugables
Updated Code
DECLARE @BAK_FILE_PATH varchar(300) DECLARE @DB_TO_RESTORE_TO varchar(300) DECLARE @SQL_SERVER_DATA_FOLDER varchar(300) DECLARE @LOGICAL_NAME_Data varchar(300) DECLARE @LOGICAL_NAME_Log varchar(300) DECLARE @query varchar(3000) /* [BAK_FILE_PATH] : Path of backup file. e.g; D:\DatabaseBackup\MyOldDB.bak */ SET @BAK_FILE_PATH = 'D:\DatabaseBackup\MyOldDB.bak' /* [DB_TO_RESTORE_TO] : Database to restore to. Should already exist. */ SET @DB_TO_RESTORE_TO = 'MyNewDB' /* [SQL_SERVER_DATA_FOLDER] : Sql server data folder. Usually C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data */ SET @SQL_SERVER_DATA_FOLDER = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data' /* Nothing to edit below this line */ /* Step 1 : Get the logical file names */ SET @query = 'RESTORE FILELISTONLY FROM DISK = ' + QUOTENAME(@BAK_FILE_PATH , '''') CREATE TABLE #restoretemp ( LogicalName nvarchar(128) ,Old_PhysicalName nvarchar(128) ,[Type] char(1) ,FileGroupName nvarchar(128) ,[Size] numeric(20,0) ,[MaxSize] numeric(20,0) ,FileID bigint ,CreateLSN numeric(25,0) ,DropLSN numeric(25,0) NULL ,UniqueID uniqueidentifier ,ReadOnlyLSN numeric(25,0) ,ReadWriteLSN numeric(25,0) ,BackupSizeInByte bigint ,SourceBlockSize int ,FilegroupID int ,LogGroupGUID uniqueidentifier NULL ,DifferentialBaseLSN numeric(25,0) ,DifferentialbaseGUID uniqueidentifier ,IsReadOnly bit ,IsPresent bit ) INSERT #restoretemp EXEC (@query) SELECT @LOGICAL_NAME_Data = LogicalName FROM #restoretemp WHERE [type] = 'D' SELECT @LOGICAL_NAME_Log = LogicalName FROM #restoretemp WHERE [type] = 'L' PRINT @LOGICAL_NAME_Data PRINT @LOGICAL_NAME_Log TRUNCATE TABLE #restoretemp DROP TABLE #restoretemp /* Step 2 : Restore the database */ SET @query = 'ALTER DATABASE ' + @DB_TO_RESTORE_TO + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE' EXEC (@query) SET @query = 'RESTORE DATABASE ' + @DB_TO_RESTORE_TO + ' FROM DISK = ' + QUOTENAME(@BAK_FILE_PATH , '''') + ' WITH REPLACE, ' + ' MOVE ' + QUOTENAME(@LOGICAL_NAME_Data, '''') + ' TO ' + QUOTENAME((@SQL_SERVER_DATA_FOLDER+'\'+@DB_TO_RESTORE_TO+'.mdf') , '''') + ', MOVE ' + QUOTENAME(@LOGICAL_NAME_Log, '''') + ' TO ' + QUOTENAME((@SQL_SERVER_DATA_FOLDER+'\'+@DB_TO_RESTORE_TO+'_log.ldf'), '''') EXEC (@query) SET @query = 'ALTER DATABASE ' + @DB_TO_RESTORE_TO + ' SET MULTI_USER' EXEC (@query)
Revision: 50862
Updated Code
at September 7, 2011 21:14 by plugables
Updated Code
/* [BAK_FILE_PATH] : Path of backup file. e.g; D:\DatabaseBackup\MyDB.bak [DB_TO_RESTORE_TO] : Database to restore to. Should already exist. [SQL_SERVER_DATA_FOLDER] : Sql server data folder. Usually C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data */ DECLARE @BAK_FILE_PATH varchar(300) DECLARE @DB_TO_RESTORE_TO varchar(300) DECLARE @SQL_SERVER_DATA_FOLDER varchar(300) DECLARE @LOGICAL_NAME_Data varchar(300) DECLARE @LOGICAL_NAME_Log varchar(300) DECLARE @query varchar(3000) /* [BAK_FILE_PATH] : Path of backup file. e.g; D:\DatabaseBackup\MyOldDB.bak */ SET @BAK_FILE_PATH = 'D:\DatabaseBackup\MyOldDB.bak' /* [DB_TO_RESTORE_TO] : Database to restore to. Should already exist. */ SET @DB_TO_RESTORE_TO = 'MyNewDB' /* [SQL_SERVER_DATA_FOLDER] : Sql server data folder. Usually C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data */ SET @SQL_SERVER_DATA_FOLDER = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data' /* Nothing to edit below this line */ /* Step 1 : Get the logical file names */ SET @query = 'RESTORE FILELISTONLY FROM DISK = ' + QUOTENAME(@BAK_FILE_PATH , '''') CREATE TABLE #restoretemp ( LogicalName nvarchar(128) ,Old_PhysicalName nvarchar(128) ,[Type] char(1) ,FileGroupName nvarchar(128) ,[Size] numeric(20,0) ,[MaxSize] numeric(20,0) ,FileID bigint ,CreateLSN numeric(25,0) ,DropLSN numeric(25,0) NULL ,UniqueID uniqueidentifier ,ReadOnlyLSN numeric(25,0) ,ReadWriteLSN numeric(25,0) ,BackupSizeInByte bigint ,SourceBlockSize int ,FilegroupID int ,LogGroupGUID uniqueidentifier NULL ,DifferentialBaseLSN numeric(25,0) ,DifferentialbaseGUID uniqueidentifier ,IsReadOnly bit ,IsPresent bit ) INSERT #restoretemp EXEC (@query) SELECT @LOGICAL_NAME_Data = LogicalName FROM #restoretemp WHERE [type] = 'D' SELECT @LOGICAL_NAME_Log = LogicalName FROM #restoretemp WHERE [type] = 'L' PRINT @LOGICAL_NAME_Data PRINT @LOGICAL_NAME_Log TRUNCATE TABLE #restoretemp DROP TABLE #restoretemp /* Step 2 : Restore the database */ SET @query = 'ALTER DATABASE ' + @DB_TO_RESTORE_TO + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE' EXEC (@query) SET @query = 'RESTORE DATABASE ' + @DB_TO_RESTORE_TO + ' FROM DISK = ' + QUOTENAME(@BAK_FILE_PATH , '''') + ' WITH REPLACE, ' + ' MOVE ' + QUOTENAME(@LOGICAL_NAME_Data, '''') + ' TO ' + QUOTENAME((@SQL_SERVER_DATA_FOLDER+'\'+@DB_TO_RESTORE_TO+'.mdf') , '''') + ', MOVE ' + QUOTENAME(@LOGICAL_NAME_Log, '''') + ' TO ' + QUOTENAME((@SQL_SERVER_DATA_FOLDER+'\'+@DB_TO_RESTORE_TO+'_log.ldf'), '''') EXEC (@query) SET @query = 'ALTER DATABASE ' + @DB_TO_RESTORE_TO + ' SET MULTI_USER' EXEC (@query)
Revision: 50861
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at September 6, 2011 21:28 by plugables
Initial Code
/* [BAK_FILE_PATH] : Path of backup file. e.g; D:\Work\Local Work\Workspace\LocalInstalls\mumba07_store.bak [DB_TO_RESTORE_TO] : Database to restore to. Should already exist. [SQL_SERVER_DATA_FOLDER] : Sql server data folder. Usually C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data */ DECLARE @BAK_FILE_PATH varchar(300) DECLARE @DB_TO_RESTORE_TO varchar(300) DECLARE @SQL_SERVER_DATA_FOLDER varchar(300) DECLARE @LOGICAL_NAME_Data varchar(300) DECLARE @LOGICAL_NAME_Log varchar(300) DECLARE @query varchar(3000) /* [BAK_FILE_PATH] : Path of backup file. e.g; D:\Work\Local Work\Workspace\LocalInstalls\mumba07_store.bak */ SET @BAK_FILE_PATH = 'd:\temp\backup.dat' /* [DB_TO_RESTORE_TO] : Database to restore to. Should already exist. */ SET @DB_TO_RESTORE_TO = 'backdesigns' /* [SQL_SERVER_DATA_FOLDER] : Sql server data folder. Usually C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data */ SET @SQL_SERVER_DATA_FOLDER = 'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data' /* Nothing to edit below this */ /* Step 1 : Get the logical file names */ SET @query = 'RESTORE FILELISTONLY FROM DISK = ' + QUOTENAME(@BAK_FILE_PATH , '''') CREATE TABLE #restoretemp ( LogicalName nvarchar(128) ,Old_PhysicalName nvarchar(128) ,[Type] char(1) ,FileGroupName nvarchar(128) ,[Size] numeric(20,0) ,[MaxSize] numeric(20,0) ,FileID bigint ,CreateLSN numeric(25,0) ,DropLSN numeric(25,0) NULL ,UniqueID uniqueidentifier ,ReadOnlyLSN numeric(25,0) ,ReadWriteLSN numeric(25,0) ,BackupSizeInByte bigint ,SourceBlockSize int ,FilegroupID int ,LogGroupGUID uniqueidentifier NULL ,DifferentialBaseLSN numeric(25,0) ,DifferentialbaseGUID uniqueidentifier ,IsReadOnly bit ,IsPresent bit ) INSERT #restoretemp EXEC (@query) SELECT @LOGICAL_NAME_Data = LogicalName FROM #restoretemp WHERE [type] = 'D' SELECT @LOGICAL_NAME_Log = LogicalName FROM #restoretemp WHERE [type] = 'L' PRINT @LOGICAL_NAME_Data PRINT @LOGICAL_NAME_Log TRUNCATE TABLE #restoretemp DROP TABLE #restoretemp /* Step 2 : Restore the database */ SET @query = 'ALTER DATABASE ' + @DB_TO_RESTORE_TO + ' SET SINGLE_USER WITH ROLLBACK IMMEDIATE' EXEC (@query) SET @query = 'RESTORE DATABASE ' + @DB_TO_RESTORE_TO + ' FROM DISK = ' + QUOTENAME(@BAK_FILE_PATH , '''') + ' WITH REPLACE, ' + ' MOVE ' + QUOTENAME(@LOGICAL_NAME_Data, '''') + ' TO ' + QUOTENAME((@SQL_SERVER_DATA_FOLDER+'\'+@DB_TO_RESTORE_TO+'.mdf') , '''') + ', MOVE ' + QUOTENAME(@LOGICAL_NAME_Log, '''') + ' TO ' + QUOTENAME((@SQL_SERVER_DATA_FOLDER+'\'+@DB_TO_RESTORE_TO+'_log.ldf'), '''') EXEC (@query) SET @query = 'ALTER DATABASE ' + @DB_TO_RESTORE_TO + ' SET MULTI_USER' EXEC (@query)
Initial URL
Initial Description
Initial Title
Restore MSSQL database from backup (.bak)
Initial Tags
sql, backup
Initial Language
SQL