Archiv

Archive for Dezember 2018

Standard Pfad für SQL Server 2017 Local DB nicht einstellbar

Im SQL Server Management Studio gibt es die Möglichkeit die Standard Pfade für neu erstellte Datenbanken anzupassen. Hierzu klickt man im Objekt-Explorer mit der rechten Maustaste auf den LocalDB-Server und dann auf Properties. Unter Database Settings sollten sich dann die Database default locations einstellen lassen. Leider funktioniert das nicht mit der LocalDB und es wird eine Fehlermeldung geworfen.

LocalDBDatabaseDefaultLocations

ErrorWhileChangingDefaultPath

Das Problem ist auch hier beschrieben: https://dba.stackexchange.com/questions/191393/localdb-v14-creates-wrong-path-for-mdf-files

Mit Powershell kann man den aktuelle eingestellten Pfad auslesen und anzeigen:

<# Listet alle LocalDB Instanzen auf #>
sqllocaldb i

<# Ermittelt den Standardpfad für eine Instanz #>
$instancename = 'MSSQLLocalDB'
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
(New-Object Microsoft.SqlServer.Management.Smo.Server("(localdb)\$instancename")).DefaultFile

<# Das Ergebnis sieht z.B. dann so aus: C:\Users\bernhard\ #>

Für das Einstellen des Standard Pfades habe ich (noch) keine Lösung gefunden. Um aber trotzdem die Files im gewünschten Verzeichnis anzulegen, gibt man den Pfad beim Anlegen der Datenbank einfach mit:

CREATE DATABASE [MeineDatenbank]
CONTAINMENT = NONE
ON PRIMARY 
( NAME = N'MeineDatenbank', FILENAME = N'D:\users\bernhard\MeineDatenbank.mdf' , SIZE = 8192KB , FILEGROWTH = 65536KB )
LOG ON 
( NAME = N'MeineDatenbank_log', FILENAME = N'D:\users\bernhard\MeineDatenbank_log.ldf' , SIZE = 8192KB , FILEGROWTH = 65536KB )
GO