Untitled
unknown
plain_text
a year ago
2.1 kB
11
Indexable
# Konfiguracja
$serverName = "NazwaTwojegoSerwera" # Nazwa twojego serwera SQL
$databaseFolder = "C:\Sciezka\Do\Folderu\Baz" # Folder, w którym znajdują się pliki baz danych
$sqlUsername = "TwojUzytkownikSQL" # Nazwa użytkownika SQL
$sqlPassword = "TwojeHasloSQL" # Hasło użytkownika SQL
# Tworzenie obiektu poświadczeń SQL
$securePassword = ConvertTo-SecureString -String $sqlPassword -AsPlainText -Force
$sqlCredential = New-Object System.Management.Automation.PSCredential($sqlUsername, $securePassword)
# Zidentyfikuj pliki MDF i LDF
$mdfFiles = Get-ChildItem -Path $databaseFolder -Filter *.mdf
$ldfFiles = Get-ChildItem -Path $databaseFolder -Filter *.ldf
if ($mdfFiles.Count -eq 0) {
Write-Output "Nie znaleziono żadnych plików MDF w folderze: $databaseFolder"
exit
}
if ($ldfFiles.Count -eq 0) {
Write-Output "Nie znaleziono żadnych plików LDF w folderze: $databaseFolder"
exit
}
# Mapowanie plików MDF do LDF
$databases = @{}
foreach ($mdf in $mdfFiles) {
$dbName = [System.IO.Path]::GetFileNameWithoutExtension($mdf.Name)
$ldf = $ldfFiles | Where-Object { $_.Name -like "$dbName.ldf" }
if ($ldf) {
$databases[$dbName] = @{
MDF = $mdf.FullName
LDF = $ldf.FullName
}
} else {
Write-Output "Nie znaleziono pliku LDF dla bazy danych: $dbName"
}
}
# Wykonanie komend T-SQL
foreach ($dbName in $databases.Keys) {
$mdfPath = $databases[$dbName].MDF
$ldfPath = $databases[$dbName].LDF
$sqlCommand = @"
CREATE DATABASE [$dbName] ON
(FILENAME = N'$mdfPath'),
(FILENAME = N'$ldfPath')
FOR ATTACH;
"@
Write-Output "Wykonuję komendę dla bazy danych: $dbName"
Write-Output $sqlCommand
try {
Invoke-Sqlcmd -ServerInstance $serverName -Credential $sqlCredential -Query $sqlCommand
Write-Output "Baza danych $dbName została pomyślnie dołączona."
} catch {
Write-Output "Wystąpił błąd podczas dołączania bazy danych $dbName: $_"
}
}
Write-Output "Proces dołączania baz danych zakończony."
Editor is loading...
Leave a Comment