functions/switch-activedatabase.ps1
<#
.SYNOPSIS Switches the 2 databases. The Old wil be renamed _original .DESCRIPTION Switches the 2 databases. The Old wil be renamed _original .PARAMETER DatabaseServer The databaseserver where the switch should occur .PARAMETER DatabaseName The name of the database to be switched .PARAMETER SqlUser User with access to alter both databases .PARAMETER SqlPwd Password for the SqlUser .PARAMETER NewDatabaseName The database that takes the DatabaseName's place .EXAMPLE Switch-ActiveDatabase -NewDatabaseName "GoldenConfig" .NOTES General notes #> function Switch-ActiveDatabase { param( [Parameter(Mandatory = $false, Position = 1)] [string]$DatabaseServer = $Script:DatabaseServer, [Parameter(Mandatory = $false, Position = 2)] [string]$DatabaseName = $Script:DatabaseName, [Parameter(Mandatory = $false, Position = 3)] [string]$SqlUser = $Script:DatabaseUserName, [Parameter(Mandatory = $false, Position = 4)] [string]$SqlPwd = $Script:DatabaseUserPassword, [Parameter(Mandatory = $true, Position = 5)] [string]$NewDatabaseName ) Write-Host "Make sure to stop all :" write-Host "World wide web publishing service (on all AOS computers)" Write-Host "Microsoft Dynamics 365 for Finance and Operations Batch Management Service (on non-private AOS computers only)" Write-Host "Management Reporter 2012 Process Service (on business intelligence [BI] computers only)" [System.Data.SqlClient.SqlCommand]$sqlCommand = Get-SQLCommand $DatabaseServer "Master" $SqlUser $SqlPwd $commandText = get-content "$script:PSModuleRoot\internal\sql\switch-database.sql" $sqlCommand.CommandText = $commandText write-verbose $sqlCommand.CommandText Write-Verbose "Rename $DatabaseName to $DatabaseName`_original" Write-Verbose "Rename $NewDatabaseName to $DatabaseName" $var = New-Object System.Data.SqlClient.SqlParameter("@OrigName", $DatabaseName) $null = $sqlCommand.Parameters.Add($var) $var = New-Object System.Data.SqlClient.SqlParameter("@NewName", $NewDatabaseName) $null = $sqlCommand.Parameters.Add($var) $sqlCommand.Connection.Open() $null = $sqlCommand.ExecuteNonQuery() $sqlCommand.Dispose() "$DatabaseName`_original" } |