Untitled

mail@pastecode.io avatar
unknown
plain_text
8 days ago
2.1 kB
1
Indexable
Never
# 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."
Leave a Comment