Powershell restore SQL Server database to new database -


i have database $currentdb , want restore backup of $currentdb $newdb. t-sql command looks this:

use [master]  alter database [newdb]      set single_user rollback immediate  restore database [newdb]  disk = n'd:\backups\currentdb.bak'  file = 1,        move n'currentdb' n'd:\databases\newdb.mdf',        move n'currentdb_log' n'd:\logs\newdb_log.ldf',        nounload, replace, stats = 5  alter database [newdb]      set multi_user go 

i attempting user restore-sqldatabase don't know how -relocatefile

$currentdb = "currentdb" $newdb = "newdb" $newdbmdf = "newdb.mdf" $currentdblog = "currentdb_log" $newdbldf = "newdb_log.ldf" $backupfile = $currentdb + "tonewdb.bak"  $relocatedata = new-object  microsoft.sqlserver.management.smo.relocatefile($currentdb, $newdbmdf)  $relocatelog = new-object  microsoft.sqlserver.management.smo.relocatefile($currentdblog, $newdbldf)  restore-sqldatabase -serverinstance $sqlserver -database $newdb -backupfile  $backupfile -replacedatabase -norecovery -relocatefile @($relocatedata,  $relocatelog) 

i can't seem locate example of attempting do. have seen plenty of examples of restoring databases same name different files. want different name , different file names. open suggestions.

you don't have use smo because your're in powershell.

import-module sqlps  $database = "newdb" $backuplocation = "d:\backups\currentdb.bak" $datafilelocation = "d:\databases\newdb.mdf" $logfilelocation = "d:\logs\newdb_log.ldf"  $sql = @"  use [master]  alter database [$database]      set single_user rollback immediate  restore database [$database]  disk = n'$backuplocation'  file = 1,        move n'currentdb' n'$datafilelocation',        move n'currentdb_log' n'$logfilelocation',        nounload, replace, stats = 5  alter database [$database]      set multi_user "@  invoke-sqlcmd $sql 

and if don't have sqlps installed, can use system.data.sqlclient powershell run tsql.


Comments

Popular posts from this blog

What is happening when Matlab is starting a "parallel pool"? -

angular - DownloadURL return null in below code -

php - Cannot override Laravel Spark authentication with own implementation -