Rename-MssqlDatabase #
ÜBERSICHT #
Benennt eine SQL Server-Datenbank um – inklusive Anpassung der logischen und physischen Dateinamen.
SYNTAX #
Rename-MssqlDatabase [-SourceDatabase] <string> [-TargetDatabase] <string> [[-Provider] <string>]
[-Server] <string> [[-User] <string>] [[-Password] <string>] [<CommonParameters>]
BESCHREIBUNG #
Diese Funktion führt eine vollständige Umbenennung einer Microsoft SQL Server-Datenbank durch. Neben dem reinen Datenbanknamen werden auch die zugehörigen logischen Dateinamen (MDF/LDF) und die physischen Dateien im Dateisystem umbenannt.
Ablauf:
- Ermittlung der DB-ID und der bestehenden Dateinamen
- Umbenennung der Datenbank per ALTER DATABASE
- Anpassung der logischen Dateinamen
- Wechsel in den OFFLINE-Modus
- Umbenennung der MDF/LDF-Dateien per
xp_cmdshell - Registrierung der neuen physischen Pfade
- Rücksetzen von
xp_cmdshell, falls temporär aktiviert
Die Funktion unterstützt sowohl SQL-Authentifizierung (User/Password) als auch Windows-Authentifizierung: Wenn -User und -Password nicht gesetzt sind, wird automatisch Integrated Security=SSPI verwendet.
Die Wahl des OLEDB-Providers erfolgt über den Parameter -Provider, z. B. MSOLEDBSQL für aktuelle SQL Server-Versionen.
PARAMETER #
-SourceDatabase #
Type: string
Name der bestehenden Datenbank, die umbenannt werden soll.
-TargetDatabase #
Type: string
Neuer Name für die Datenbank (inkl. logischer und physischer Dateinamen).
-Provider #
Type: string
Default: 'SQLOLEDB'
OLEDB-Provider für die Verbindung (z. B. SQLOLEDB oder MSOLEDBSQL). Standard: SQLOLEDB.
-Server #
Type: string
Name oder Instanz des SQL Servers (z. B. ‘.\SQL2022’).
-User #
Type: string
SQL-Benutzername. Wenn nicht gesetzt, wird Windows-Authentifizierung verwendet.
-Password #
Type: string
SQL-Kennwort. Wenn nicht gesetzt, wird Windows-Authentifizierung verwendet.
BEISPIELE #
# Benennt die SQL Server-Datenbank 'Eulanda_Alt' in 'Eulanda_Neu' um. Dabei werden auch die MDF- und LDF-Dateien angepasst.
Rename-MssqlDatabase `
-SourceDatabase 'Eulanda_Alt' `
-TargetDatabase 'Eulanda_Neu' `
-Server '.\SQL2022' `
-User 'sa' `
-Password 'Geheim123'
# Nutzt moderne Verbindung über MSOLEDBSQL und Windows-Authentifizierung zur Umbenennung der Datenbank.
Rename-MssqlDatabase `
-SourceDatabase 'EulandaTest' `
-TargetDatabase 'EulandaTestRenamed' `
-Server 'SQL01' `
-Provider 'MSOLEDBSQL'
VERWANDTE LINKS #
HINWEISE #
xp_cmdshellwird nur aktiviert, wenn nötig, und danach wieder deaktiviert.- Der SQL-Login benötigt ausreichende Rechte (ALTER DATABASE, Konfigurationsänderungen).
- Die Datenbank wird temporär in den SINGLE_USER- und OFFLINE-Modus versetzt.
- Die Funktion setzt voraus, dass die Datenbankdateien direkt umbenennbar sind (z. B. keine Sperre durch andere Prozesse).