-- Restores the DBs
SET NOCOUNT ON
DECLARE @DB_NAMELIST VARCHAR(200)
DECLARE @DB_NAME VARCHAR(50)
DECLARE @STG_NAME VARCHAR(50)
DECLARE @SQL VARCHAR(MAX)
DECLARE @BackupFolderLocation VARCHAR(50)
DECLARE @BackupExtension VARCHAR(10)
DECLARE @Backupfilepathname VARCHAR(150)
DECLARE @$$errno INT
DECLARE @$$errmsg VARCHAR(1000)
DECLARE @$$severitylevel INT
DECLARE @pos INT
DECLARE @exist INT
SET @DB_NAMELIST = 'Prod_Sitecore_Core,Prod_Sitecore_Master,Prod_Sitecore_Web'
SET @BackupFolderLocation = 'D:\SQLBackup\'
SET @BackupExtension = '.bak'
SET @DB_NAMELIST = LTRIM(RTRIM(@DB_NAMELIST)) + ','
SET @Pos = CHARINDEX(',', @DB_NAMELIST, 1)
SET @$$errmsg = ''
IF REPLACE(@DB_NAMELIST, ',', '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @DB_NAME = LTRIM(RTRIM(LEFT(@DB_NAMELIST, @Pos - 1)))
IF @DB_NAME <> ''
BEGIN
SET @Backupfilepathname = @BackupFolderLocation + @DB_NAME + @BackupExtension
--SELECT @exist = dbo.udf_CheckFileStatus (@Backupfilepathname)
SET @exist = 0
IF (@exist = 0)
BEGIN
--PRINT 'backup file exist'
SELECT @STG_NAME = REPLACE(@DB_NAME, 'PROD_', 'DEV_')
SELECT @SQL = 'alter database ' + @STG_NAME + ' set SINGLE_USER WITH ROLLBACK IMMEDIATE ;'
--print (@SQL)
EXEC (@SQL)
SELECT @$$errno = @@error
IF (@$$errno <> 0)
BEGIN
SELECT @$$errmsg = 'Error : while setting the target database to SINGLE user mode, SQL: ' + @SQL
GOTO ERROR
END
SELECT @SQL = 'restore database ' + @STG_NAME + ' from DISK = N''' + @Backupfilepathname + ''' WITH REPLACE ;'
--print (@SQL)
EXEC (@SQL)
SELECT @$$errno = @@error
IF (@$$errno <> 0)
BEGIN
SELECT @$$errmsg = 'Error : while restoring the target database using the source database backup, SQL: ' + @SQL
GOTO ERROR
END
SELECT @SQL = 'alter database ' + @STG_NAME + ' set multi_user ;'
--print (@SQL)
EXEC (@SQL)
SELECT @$$errno = @@error
IF (@$$errno <> 0)
BEGIN
SELECT @$$errmsg = 'Error : While setting the target database to MULTI USER mode, SQL : ' + @SQL
GOTO ERROR
END
END
ELSE
BEGIN
PRINT 'Backup ' + @Backupfilepathname + ' does not exist !'
END
SET @DB_NAMELIST = RIGHT(@DB_NAMELIST, LEN(@DB_NAMELIST) - @Pos)
SET @Pos = CHARINDEX(',', @DB_NAMELIST, 1)
END --end @DB_NAME
END --end while loop
GOTO END_PROC
END
ERROR:
SELECT @$$errmsg = 'Error dbo.sp_restore_db : ' + isnull(@$$errmsg, '')
RAISERROR (
@$$errmsg
,@$$severitylevel
,1
)
END_PROC:
SET NOCOUNT OFF
GO
USE DIADevSitecore_Core
EXEC sp_change_users_login 'Update_One'
,'SITECOREUSR'
,'SITECOREUSR';
USE DIADevSitecore_Master
EXEC sp_change_users_login 'Update_One'
,'SITECOREUSR'
,'SITECOREUSR';
USE DIADevSitecore_Web
EXEC sp_change_users_login 'Update_One'
,'SITECOREUSR'
,'SITECOREUSR';
USE master;
ALTER DATABASE DIADevSitecore_Core
SET RECOVERY SIMPLE;
ALTER DATABASE DIADevSitecore_Master
SET RECOVERY SIMPLE;
ALTER DATABASE DIADevSitecore_Web
SET RECOVERY SIMPLE;
GO