forked from ktaranov/sqlserver-kit
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRestore_Database_Dynamic_SQL.sql
More file actions
21 lines (18 loc) · 1016 Bytes
/
Restore_Database_Dynamic_SQL.sql
File metadata and controls
21 lines (18 loc) · 1016 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
USE master;
GO
DECLARE @restoreStatement NVARCHAR(4000) = N'';
DECLARE @databaseName SYSNAME = N'AdventureWorks2014';
DECLARE @backupFilePath NVARCHAR(2000) = N'G:\YaDisk\Backup\Distrib\SQL Server\Sample_Database\AdventureWorks\' + @databaseName + N'.bak';
DECLARE @serverPath NVARCHAR(2000) = N'K:\MSSQL\MSSQL14.MSSQLSERVER\MSSQL\DATA\';
DECLARE @debug BIT = 1;
SET @restoreStatement = N'
RESTORE DATABASE [@databaseName] FROM DISK = N''@backupFilePath''
WITH FILE = 1, MOVE N''@databaseName_Data'' TO N''@serverPath@databaseName_Data.mdf'',
MOVE N''@databaseName_Log'' TO N''@serverPath@databaseName_Log.ldf'', NOUNLOAD, STATS = 5';
SET @restoreStatement = REPLACE(@restoreStatement, '@databaseName', @databaseName);
SET @restoreStatement = REPLACE(@restoreStatement, '@backupFilePath', @backupFilePath);
SET @restoreStatement = REPLACE(@restoreStatement, '@serverPath', @serverPath);
IF @debug = 1 PRINT(@restoreStatement)
ELSE
EXEC sp_executesql @restoreStatement;
GO