Skip to content

Instantly share code, notes, and snippets.

@dzsquared
Created July 5, 2019 15:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dzsquared/dc38c699c2ab79fd68183c732a0e6215 to your computer and use it in GitHub Desktop.
Save dzsquared/dc38c699c2ab79fd68183c732a0e6215 to your computer and use it in GitHub Desktop.
script for duplicating Dynamics SL production databases into test databases
BACKUP DATABASE IECISAPP --YOUR PRODUCTION DB HERE, takes ~5min for 8GB
TO DISK = 'V:\backups_temp\DYNSL\applicationdb.bak'
WITH COPY_ONLY, INIT, SKIP;
GO
BACKUP DATABASE IECISSYS --YOUR SYSTEM DB HERE, takes <30 seconds for 50MB
TO DISK = 'V:\backups_temp\DYNSL\systemdb.bak'
WITH COPY_ONLY, INIT, SKIP;
GO
-- UPDATES TEST DB HERE, takes ~3min
ALTER DATABASE [TEST_IECISApp] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
RESTORE DATABASE [TEST_IECISApp] FROM DISK = N'V:\backups_temp\DYNSL\applicationdb.bak' WITH REPLACE, STATS = 5
ALTER DATABASE [TEST_IECISApp] SET MULTI_USER
GO
ALTER DATABASE [TEST_IECISSys] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
RESTORE DATABASE [TEST_IECISSys] FROM DISK = N'V:\backups_temp\DYNSL\systemdb.bak' WITH REPLACE, STATS = 5
ALTER DATABASE [TEST_IECISSys] SET MULTI_USER
GO
ALTER DATABASE TEST_IECISAPP
SET RECOVERY SIMPLE;
GO
ALTER DATABASE TEST_IECISSYS
SET RECOVERY SIMPLE;
GO
USE [TEST_IECISApp]
GO
DBCC SHRINKFILE (N'IECISApp_Log' , 0, TRUNCATEONLY)
GO
USE TEST_IECISSYS;
UPDATE COMPANY SET DatabaseName = 'TEST_IECISApp', CpnyColor = '255' WHERE DATABASENAME = 'IECISApp'
UPDATE DOMAIN SET DatabaseName = 'TEST_IECISApp' WHERE DATABASENAME = 'IECISApp'
UPDATE DOMAIN SET DatabaseName = 'TEST_IECISSys' WHERE DATABASENAME = 'IECISSys'
GO
USE TEST_IECISAPP;
GO
ALTER VIEW [dbo].[vs_company] AS SELECT * FROM test_IECISSys..company
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment